我正在对流行游戏(Minecraft)进行修改,并且在地形生成中看到了这些线条,

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

我想知道d4的意义是什么,因为在第四行它将始终为0,不是吗?

最佳答案

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

对于浮点二进制算术的所有不准确性,都可以精确地表示1.0本身,并且将其自身相乘的结果总是简单地回到1.0。

您确定其他地方没有其他事情使其与1.0d略有不同吗?还是历史上它不是0.1的某个值?

08-16 08:45