Выделение цифры из числа

Тема в разделе "Свободное общение", создана пользователем maxiik, 23 май 2011.

  1. maxiik

    maxiik New Member

    Регистрация:
    29 сен 2010
    Сообщения:
    4
    Симпатии:
    0
    Всем доброго времени суток !!!
    Я недавно занимаюсь программированием, так, что если вопрос покажется элементарным, то прошу сильно не пинать :rolleyes:
    Подскажите пожалуста, как выделить из длинного числа отдельные цифры ?
    Число может быть любой длинны (зарание не известно) и может быть дробным (с десятичной точкой)...
    Причём, если число с десятичной точкой, то как выделить эту точку ?
    ***
    Задача состоит в том, чтобы выводить определённое число (значение температуры) на семисегментные индикаторы (состоит из трёх элементов). Итак, программа выдаёт определённое число, но чтобы вывести его на индикатор программа должна знать на какой элемент индикатора выводить конкретную цифру.
    ***
    Я так понимаю, что нужно выделить из длинного числа именно то количество цифер каково количество элементов в индикаторе.
    Но вот как это сделать ?
    И потом методом деления на 10, 100, 1000 ... и т.д. выделять конкретные цифры....
    Ну тогда остаётся вопрос, а как выделить десятичную точку ???
    ***
    Зарание благодарю за помощь !!!!
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    В языке Си есть функция modf которая разбивает переменную вещественного типа double на целую и дробную части.
    Выделить цифру из целой части можно остатком от деления на 10 (с условием что мы работает в 10-й системе счисления).
    Для дробной части необходимо определить какое количество знаков после запятой тебе необходимо, например:
    дробная часть: 0.123456
    нужно выделить 2 цифры, для этого умножаем дробную часть 2 раза на 10 (т.е. на 100), получается 12.3456. Затем округляем ее до целых получается 12, после выделяем цифры как из целой части.
     
  3. maxiik

    maxiik New Member

    Регистрация:
    29 сен 2010
    Сообщения:
    4
    Симпатии:
    0
    Спасибо большое за помощь !!!
    Вот не совсем понятно как выделить из целого числа первые цифры по отдельности методом деления на 10...
    Длинна числа не известна и может меняться, тогда как программа узнает сколько раз ей нужно разделить число на 10 чтобы выделить нужные цифры ?
    И как выделить десятичную точку ?
     
  4. 1ive

    1ive Well-Known Member
    Web Team

    Регистрация:
    12 сен 2010
    Сообщения:
    694
    Симпатии:
    0
    Для первой цифры делить до тех пор, пока целая часть от деления не будет 0<=X<=9
    Для второй - целая часть 10<=x<=99, а потом поделить еще раз на 10 и выделить дробную часть.
    Для третьей - целая часть 100<=x<=999, а потом поделить на 10 и выделить дробную часть.
     
  5. a0z

    a0z Well-Known Member

    Регистрация:
    15 мар 2011
    Сообщения:
    109
    Симпатии:
    0
    Отконвертировать число в строку.
     
  6. maxiik

    maxiik New Member

    Регистрация:
    29 сен 2010
    Сообщения:
    4
    Симпатии:
    0
    1ive, спасибо большое за совет !!!
    Именно такой алгоритм и применил !!!
    Очень помогло !!!)
     
  7. 1ive

    1ive Well-Known Member
    Web Team

    Регистрация:
    12 сен 2010
    Сообщения:
    694
    Симпатии:
    0
    Верните плюсы новичкам :)
     
Загрузка...

Поделиться этой страницей