这个问题在这里已经有答案了:
java程序中奇怪的浮点行为[重复](4个答案)
5年前关门了。
我想知道为什么我在做这个双数和的时候会得到这么多小数点
System.out.println(Double.parseDouble(".56"));
double dvalue=1.12+Double.parseDouble(".56");
System.out.println(dvalue);
输出如下:0.56和1.6800000000000002为什么第二次求和是将小数相加,它应该是1.68
这个问题在这里已经有答案了:
java程序中奇怪的浮点行为[重复](4个答案)
5年前关门了。
我想知道为什么我在做这个双数和的时候会得到这么多小数点
System.out.println(Double.parseDouble(".56"));
double dvalue=1.12+Double.parseDouble(".56");
System.out.println(dvalue);
输出如下:0.56和1.6800000000000002为什么第二次求和是将小数相加,它应该是1.68
1条答案
按热度按时间holgip5t1#
这是因为将1.12和0.56这两个数字相加,并不能得到1.68的精确表示(并不能得到1.68)。您可以看到此代码的区别: