gpt4 book ai didi

具有常量乘法/除法的Java double

转载 作者:搜寻专家 更新时间:2023-10-31 20:14:29 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Retain precision with Doubles in java

你知道Java中这两个操作的区别吗?

final double m1 = 11d / 1e9; // gives 1.1e-8
final double m2 = 11d * 1e-9; // gives 1.1000000000000001e-8

我在生成的字节码中看到m2的预编译结果已经不是我所期望的。
javap -verbose -c 的输出中,我可以看到以下值:

const #3 = double   1.1E-8d;
[...]
const #6 = double 1.1000000000000001E-8d;

当我在其他表达式中使用 m1 或 m2 时,我没有得到相同的结果。

当我在 C 中尝试同样的事情时,m1 和 m2 严格是 1.1e-8

我认为我的问题在于 java 处理 double 计算的方式,但我无法解释自己错过了什么。

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