EvgenyProff
@EvgenyProff
Не знаю, как пользоваться Google

Как посчитать количество знаков после запятой у флоат?

Понятно, что речь идет не о 1.3(3). А о обычных флоат вроде: 4.637; должен в переменную, к примеру, L запихнуть значение 3, т.к. 3 знака после запятой во вводимом числе. Подскажите алгоритм, желательно без сканф (если уж никак, то можно и с ним) на с++.
  • Вопрос задан
  • 4714 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Тут основная проблема в том, что для компьютера, при использовании чисел одинарной точности, 4.63710 = 100.1010001100010010011012 = 4.636999607110, то есть точно посчитать количество десятичных знаков после запятой невозможно. Приблизительно можно считать беря дробную часть числа. Если эта часть близка к нулю (r < epsilon) или к единице (1-r < epsilon), то, с какой-то вероятностью можно сказать, что мы посчитали длину дробной части. Если нет - то умножаем дробную часть на 10, увеличиваем счётчик и проверяем сначала.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы