【问题标题】:add float to Json Obj incorrect decimal将浮点数添加到 Json Obj 不正确的小数
【发布时间】: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}。我会阅读您发布的链接

标签: php json


【解决方案1】:

将您的号码保存为字符串:

   $test = "0.3";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多