喜欢:
float(1.2345678901235E+19) => string(20) "12345678901234567890"
能做到吗?
(这是针对json_decode的...)
喜欢:
float(1.2345678901235E+19) => string(20) "12345678901234567890"
能做到吗?
(这是针对json_decode的...)
echo number_format($float,0,'.','');
注意:此操作仅适用于整数,将0增加以获得额外的小数位数
$float = 0.123;
$string = sprintf("%.3f", $float); // $string = "0.123";
原来,json_decode
默认将大整数转换为浮点数。但可以在函数调用中覆盖此选项:
$json_array = json_decode($json_string, , , 1);
我只是根据主要文档进行翻译,所以请测试并让我知道它是否有效。
我通过在options
参数中传递JSON_BIGINT_AS_STRING
参数来解决了这个问题。
json_decode($json, false, 512, JSON_BIGINT_AS_STRING)
请参见json_decode文档中的示例#5。
双精度浮点数只能容纳大约15个有效数字。最好的方法是使用零填充额外的数字。
echo number_format($float,10,'.','');
,这样它就有了最多10位小数(这个数字是任意的,但我相信它应该大于0)。 - Anthony