в книге Джека Ширази «Настройка производительности Java» он представляет способ оптимизации преобразования из двойного в строковое.код оптимизации можно найти здесь: http://onjava.com/onjava/2000/12/15/graphics/DoubleToString.java
однако, существует некоторая проблема с конкретными числами для двухзначного дисплея, при использовании метода с 0,0951 (до 0,0999) он возвращает «0,0а ", что явно неверно.при запуске с 0.0949 он корректно возвращает 0.09.при запуске с 1.0951 он корректно возвращает 1.10.
есть идеи о том, что не так?Я пытаюсь понять мелочи, но пока не нашел виновника.
Вот мой основной тест:
public DoubleToString() {
double d1 = 0.0949;
double d2 = 0.0951;
StringBuffer sb = new StringBuffer();
sb.append("display d1 = ");
appendFormatted(sb, d1, 2, '.', ',', 3, '-', '-');
sb.append(" : ");
appendFormatted(sb, d2, 2, '.', ',', 3, '-', '-');
System.out.println(sb.toString());
}