Java双精度数学

时间:2011-09-01 22:22:40

标签: java double

我正在对一款热门游戏(Minecraft)进行一些修改,我在地形生成中看到了这些线条,

double d4 = 1.0D;
d4 *= d4; 
d4 *= d4;
d4 = 1.0D - d4;
double d5 = (noise1[l1] + 256D) / 512D;
d5 *= d4;

我想知道d4的重点是什么,因为在第四行它总是0,不是吗?

1 个答案:

答案 0 :(得分:5)

是的,在Java中,至少可以保证为0。

对于浮动二进制点算术的所有不准确性,1.0本身可以准确表示,并且将其自身相乘的结果将始终回到1.0。

你确定其他地方没有别的东西让它略微与1.0d不同吗?或者也许它在历史上是除了0.1以外的某些值?