gpt4 book ai didi

java - 为什么在 ColdFusion 中 0.06 + 0.01 = 0.07?

转载 作者:IT老高 更新时间:2023-10-28 21:12:36 26 4
gpt4 key购买 nike

为什么 ColdFusion 中的数学运算似乎不受 float 学问题的影响?拿下代码:

result = 0.06 + 0.01;

writedump(result);
writedump(result.getClass().getName());

哪些输出

0.07

java.lang.Double

然而,当添加两个 double 时,等效的 Java 代码会产生我所期望的结果:

public static void main(String[] args) {
double a = 0.01d;
double b = 0.06d;

System.out.println(a + b); //0.06999999999999999
}

这是我期望从 ColdFusion 中看到的,因为 float 数学 (http://download.oracle.com/docs/cd/E19957-01/806-3568/ncg_goldberg.html) 的现实。

ColdFusion 是在幕后做了一些“魔术”还是我在这里看到了一个孤立的异常?

最佳答案

我强烈怀疑它只是在 输出 上进行了不同的舍入。换句话说,问题仍然存在 - 当使用 writedump 打印出这个特定值时,它恰好没有出现。

如果你使用会发生什么:

writedump(String.valueOf(result));

?

关于java - 为什么在 ColdFusion 中 0.06 + 0.01 = 0.07?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7422510/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com