Оба float
и double
имеют конечное представление, что означает, что они
принять ряд конкретных значений, а не просто какие-либо реальные значения. В
в частности, в вашем примере 0.1
не имеет точной плавающей запятой
представление на любой современной машине, которую я знаю (все из которых используют базу
в их реализации это степень 2 - 0.1
равно 1/5 *
1/2
, и ничто, кратное 1/5
, не может иметь конечного
представление, если основание не кратно 5).
В результате либо float
, либо double
имеют один и тот же базовый
представление (обычно это не так), или будет разница, как
как только count
отличается от 0.
Обычная ссылка на эту тему
& Ldquo; Что
Каждый ученый должен знать о с плавающей точкой
Арифметика & Rdquo ;. Пока вы не прочитали и не поняли (или, по крайней мере,
понял значение) это, вы не должны трогать машину плавающей
точка.