10000.00); print_r(json_encode($a)); 在上面的例子中-6ren">
gpt4 book ai didi

php - json_encode 返回浮点值,就好像它是

转载 作者:可可西里 更新时间:2023-11-01 00:40:30 24 4
gpt4 key购买 nike

我需要将数组转换为 json 并希望保留数据的精度和类型。

   $a = array("num" => 10000.00);
print_r(json_encode($a));

在上面的例子中,10000.00 被转换为 10000。我怎样才能保留 json 中的所有内容。

最佳答案

在 php 5.6+ 中你能做的最好的事情就是确保它被编码为 float 。但是,这并不能保持精度:

<?php
$a = array("num" => 10000.00);
print_r(json_encode($a, JSON_PRESERVE_ZERO_FRACTION));

如果数据类型精度很重要,您需要发送一个额外的参数,例如:

$a = ["num" => [
"value" => 10000.0,
"precision" => 2
]
];
print_r(json_encode($a, JSON_PRESERVE_ZERO_FRACTION));

如果您始终需要 2 位数字的精度(例如货币值),则应将这些值乘以 100 并将其存储为整数以避免舍入问题。另见 PHP - Floating Number Precision .

关于php - json_encode 返回浮点值,就好像它是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41298424/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com