Tag: floating point precision

为什么ColdFusion中0.06 + 0.01 = 0.07?

为什么ColdFusion中的数学运算似乎不受浮点数学问题的影响? 拿代码: result = 0.06 + 0.01; writedump(result); writedump(result.getClass().getName()); 哪个输出 0.07 java.lang.Double中 然而,相当的Java代码产生了我在添加两个双精度时所期望的: public static void main(String[] args) { double a = 0.01d; double b = 0.06d; System.out.println(a + b); //0.06999999999999999 } 这是我期望从ColdFusion看到的,因为浮动数学的现实( http://download.oracle.com/docs/cd/E19957-01/806-3568/ncg_goldberg.html )。 ColdFusion在幕后做了一些“魔术”还是我在这里看到一个孤立的exception?