Код: Выделить всё
public class MyTest2 {
public static void main(String[] args) {
//about 1.00000001490116119384765625E-1 in IEEE-754
float f = 0.1f;
//about 1.00000000000000005551115123126E-1 in IEEE-754
double d = 0.1d;
System.out.println(String.format("double 0.1= %.30f", d));
System.out.println(String.format("float 0.1 = %.15f", f));
System.out.println(d+"");
}
}
Код: Выделить всё
double 0.1= 0.100000000000000000000000000000
float 0.1 = 0.100000001490116
0.1
Я ожидаю, что двойное значение 0.1d будет напечатано примерно так: 1.000000000000000055511151231260. Почему он печатает
все нули в дробной части?
Если я конвертирую двойную переменную d в строку, он печатает 0,1.
Код: Выделить всё
System.out.println(d+"");