我想知道为什么我在做这个双精度数之和时得到这么多小数点
的原因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