首页 > 解决方案 > 奇怪的 PHP 错误

问题描述

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

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

我可以通过将 index 转换为 string 来解决这个问题$arr[(string) ((40.9+0.0004)*100000)] = 1;,但我想了解导致这种情况发生的底层机制。

更新

这与这个问题没有直接关系浮点数学是否损坏?- 虽然答案可能与那个浮点错误有关,但我试图了解它对我的影响。

标签: phparrays

解决方案


推荐阅读