我正在对一款热门游戏(Minecraft)进行一些修改,我在地形生成中看到了这些线条,
double d4 = 1.0D;
d4 *= d4;
d4 *= d4;
d4 = 1.0D - d4;
double d5 = (noise1[l1] + 256D) / 512D;
d5 *= d4;
我想知道d4
的重点是什么,因为在第四行它总是0,不是吗?
答案 0 :(得分:5)
是的,在Java中,至少可以保证为0。
对于浮动二进制点算术的所有不准确性,1.0本身可以准确表示,并且将其自身相乘的结果将始终回到1.0。
你确定其他地方没有别的东西让它略微与1.0d不同吗?或者也许它在历史上是除了0.1以外的某些值?