奇怪的PHP错误

时间:2018-10-22 20:01:48

标签: php arrays

使用公式计算索引来为索引设置值时,类似 $arr[((40.9+0.00004)*100000)] = 1;, 在预期的结果中,我的数组应具有index的值,如下所示:[4090004]=>1; 相反,我得到了[4090003]=>1

有人可以帮我了解发生了什么吗?

我能够通过将索引转换为字符串$arr[(string) ((40.9+0.0004)*100000)] = 1;来解决此问题,但是我想了解导致这种情况发生的基本机制。

更新

这与问题Is floating point math broken?没有直接关系-尽管答案可能与浮点错误有关,但我试图在这里了解它如何影响我。

0 个答案:

没有答案