Ответ 1
Это была ошибка в Java с 1.3 по 1.6 (разрешено в 1.7).
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4511638 В отчете об ошибке http://bugs.sun.com/view_bug.do?bug_id=4428022 содержится более подробная информация. Исправлено в JDK 7 (b75).
Связанные отчеты - цитируются по ссылке выше.
- Backport: JDK-2181423 - выходы System.out.println(0.001) 0.0010
- Дубликат: JDK-5078240 - Double.toString(double) добавляет конечный ноль в некоторых случаях
- Дубликат: JDK-6575880 - Float.toString(float) добавляет трейлинг нули
- Отношения: JDK-6935102 - Regtest
closed/sun/misc/FloatingDecimal/ToString.java теперь не работает. - Относится: JDK-4154042 - java.lang.FloatingDecimal может быть устранены
Изменения для OpenJDK 7 для устранения этой проблемы доступны по адресу: http://hg.openjdk.java.net/jdk7/tl/jdk/rev/f85aa3aedf41