php - 奇怪的 PHP 错误
问题描述
当使用公式计算索引为索引设置值时
$arr[((40.9+0.00004)*100000)] = 1;
,在预期结果中,我的数组应该具有索引值,如下所示[4090004]=>1
:相反,我得到了 [4090003]=>1
.
有人可以让我了解发生了什么吗?
我可以通过将 index 转换为 string 来解决这个问题$arr[(string) ((40.9+0.0004)*100000)] = 1;
,但我想了解导致这种情况发生的底层机制。
更新
这与这个问题没有直接关系浮点数学是否损坏?- 虽然答案可能与那个浮点错误有关,但我试图了解它对我的影响。
解决方案
推荐阅读
- c - libreadline 编辑和执行命令支持
- java - 如何从firebase数据库中获取一个孩子
- java - Intellij上“clean”和“clean tomcat工作目录”的等效操作是什么?
- amazon-ecs - 阶梯函数 - sqs - ecs
- c# - 方法不断将相同的东西添加到列表中
- c# - 您将如何在删除其余数字的同时提取一组数字中的第一个数字?
- google-cloud-platform - Google Speech to Text 最佳值
- kendo-ui - Kendo UI 无法绑定 ViewModel
- python - 虽然循环没有以“break”退出
- javascript - JavaScript解释器如何将全局语句添加到事件队列中?