【发布时间】:2011-10-29 09:55:34
【问题描述】:
当我运行以下 Visual Basic 代码时:
Dim b As Double
b = (2 ^ 16 - 1) * Math.Sqrt(Math.Sqrt((a / (2 ^ 8 - 1))))
(假设 a 是一个值为 15.0 的双精度)
我为b 得到的结果约为 32,275。
但是当我运行下面的 Java 代码时,应该和上面一样:
double b;
b = (2 ^ 16 - 1) * Math.sqrt(Math.sqrt((a / (2 ^ 8 - 1))));
再一次,a 是 15,我得到一个完全不同的结果:大约 17。
两者都在求解这个方程:
为什么会这样?对于我正在处理的工作,Visual Basic 产生了我正在寻找的结果。
【问题讨论】: