Покрывая целое число, чтобы плавать. Проблема решена, но интересно, почему

Как показано на рисунке ниже:
вроде этого

Я сравнивал значение textfield с 99999999 и вел бы себя по-разному в зависимости от результата.

Наконец, я нашел integerValue или doubleValue метод возвращает правильное значение,
но кто может объяснить мне почему? почему floatValue 100000000 здесь? не предсказуемо?

Спасибо за ваше время заранее.

Метки

1 ответ

  1. Числа с плавающей запятой представлены в аппаратных средствах компьютера в виде базовых 2 (двоичных) дробей.

    Большинство десятичных дробей не могут быть представлены точно как двоичные дроби. Следствием этого является то, что обычно вводимые десятичные числа с плавающей запятой аппроксимируются только двоичными числами с плавающей запятой, фактически хранящимися в машине.

    Есть документы, на которые можно ссылаться: http://www.c64-wiki.com/index.php/Floating_point_arithmetic