Большинство дробных чисел не могут быть точно представлены с помощью типа double. Например, 0.1 в двоичном виде представляется в виде бесконечной двоичной дроби, а так как в памяти компьютера хранится только ограниченное количество разрядов, то бесконечный "хвост" отбрасывается и полученное значение чуть-чуть отличается от 0.1.
Такой способ представления дробных чисел учитывается при выводе на экран, и отображается "правильное" значение.
Если воспользоваться другим способом представления дробных чисел, можно получить другой результат.
Например, команда System.out.println(new BigDecimal(0.1)); выведет реальное представление числа в памяти:
0.1000000000000000055511151231257827021181583404541015625
Войдите чтобы поставить Нравится
Войдите чтобы прокомментировать