【发布时间】:2011-10-16 03:23:24
【问题描述】:
喜欢:
浮点数(1.2345678901235E+19) => 字符串(20) "12345678901234567890"
可以吗?
(用于 json_decode...)
【问题讨论】:
标签: php string floating-point type-conversion
喜欢:
浮点数(1.2345678901235E+19) => 字符串(20) "12345678901234567890"
可以吗?
(用于 json_decode...)
【问题讨论】:
标签: php string floating-point type-conversion
echo number_format($float,0,'.','');
注意:这是整数,小数加0
【讨论】:
echo number_format($float,10,'.','');,最多保留 10 位小数。 (任意,但我很确定它应该高于 0)。
$float = 0.123;
$string = sprintf("%.3f", $float); // $string = "0.123";
【讨论】:
原来json_decode 默认将大整数转换为浮点数。这个选项可以在函数调用中被覆盖:
$json_array = json_decode($json_string, , , 1);
我只是基于主要文档,所以请测试并告诉我它是否有效。
【讨论】:
双精度浮点数只能包含大约 15 个有效数字。你能做的最好的就是用零填充多余的数字。
【讨论】:
我通过为options 参数传递参数JSON_BIGINT_AS_STRING 解决了这个问题。
json_decode($json, false, 512, JSON_BIGINT_AS_STRING)
参见json_decode documentation 中的示例 #5
【讨论】:
在不丢失精度的情况下解码浮点数的唯一方法是遍历 json 并将所有浮点数用引号括起来。通过制作一串数字。
【讨论】: