Double.valueOf 的结果解释



我想知道为什么我在做这个双精度数之和时得到这么多小数点

的原因
System.out.println(Double.parseDouble(".56"));
double dvalue=1.12+Double.parseDouble(".56");
System.out.println(dvalue);

输出如下0.56 和1.6800000000000002为什么第二求和是添加那些小数,它应该只是 1.68

这是因为双精度 1.12 和 0.56 的相加并不能产生 1.68 的精确表示(它不会精确地得到 1.68)。您可以看到此代码的区别:

System.out.println(1.12+0.56);   // 1.6800000000000002
System.out.println(1.68);        // 1.68

最新更新