为什么 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
}
由于浮动数学的现实( http://download.oracle.com/docs/cd/E19957-01/806-3568/ncg_goldberg.html) ,这是我期望从 ColdFusion 看到的。
ColdFusion 是否在幕后做了一些“魔术”,还是我在这里看到了一个孤立的异常?