【发布时间】:2021-10-02 12:40:15
【问题描述】:
使用 PHP,我尝试将浮点数 0.3 添加到对象然后对其进行编码,但是当我对对象进行编码时,浮点数会更改为长十进制数。
<?php
$test = 0.3;
$data = new stdClass();
$data->test = $test;
echo json_encode ($data);
?>
【问题讨论】:
-
按预期工作(有一个小修复):3v4l.org/ZQmih(输出为
{"test":0.3})。但这可能是一个有趣的阅读:Is floating point math broken? -
抱歉在代码的第三行出现类型错误。刚刚编辑。我得到 {"test":0.29999999999999999} 结果是我期待 {"test":0.3}。我会阅读您发布的链接