Answer the question
In order to leave comments, you need to log in
How to count the number of decimal places in a float?
It is clear that this is not about 1.3(3). And about ordinary floats like: 4.637; should push the value 3 into the variable, for example, L, because 3 decimal places in the input number. Tell me the algorithm, preferably without scanf (if not, then you can with it) in c ++.
Answer the question
In order to leave comments, you need to log in
Тут основная проблема в том, что для компьютера, при использовании чисел одинарной точности, 4.63710 = 100.1010001100010010011012 = 4.636999607110, то есть точно посчитать количество десятичных знаков после запятой невозможно. Приблизительно можно считать беря дробную часть числа. Если эта часть близка к нулю (r < epsilon) или к единице (1-r < epsilon), то, с какой-то вероятностью можно сказать, что мы посчитали длину дробной части. Если нет - то умножаем дробную часть на 10, увеличиваем счётчик и проверяем сначала.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question