ColdFusion の数学演算が浮動小数点演算の問題の影響を受けないように見えるのはなぜですか? コードを取得します。
result = 0.06 + 0.01;
writedump(result);
writedump(result.getClass().getName());
どの出力
0.07
java.lang.Double
ただし、同等の Java コードは、2 つの double を追加するときに期待するものを生成します。
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 は舞台裏で何らかの「魔法」を行っているのでしょうか、それともここで孤立した異常を見ているのでしょうか?