在php中将float转换为字符串?

时间:2011-07-29 17:16:48

标签: php string floating-point type-conversion

像:

float(1.2345678901235E + 19)=> string(20)“12345678901234567890”

可以吗?

(这是json_decode ...)

6 个答案:

答案 0 :(得分:40)

echo number_format($float,0,'.','');

注意:这是针对整数的,对于额外的小数位数增加0

答案 1 :(得分:8)

$float = 0.123;
$string = sprintf("%.3f", $float); // $string = "0.123";

答案 2 :(得分:2)

默认情况下,json_decode将大整数强制转换为浮点数。可以在函数调用中覆盖此选项:

$json_array = json_decode($json_string, , , 1);

我仅以主要文档为基础,所以请测试并告诉我它是否有效。

答案 3 :(得分:0)

双精度浮点数只能包含大约15位有效数字。你能做的最好的就是用零填充额外的数字。

答案 4 :(得分:0)

我通过为JSON_BIGINT_AS_STRING参数传递参数options解决了这个问题。

json_decode($json, false, 512, JSON_BIGINT_AS_STRING)

参见json_decode documentation

中的示例#5

答案 5 :(得分:0)

解码浮点数而又不损失精度的唯一方法是遍历json并将所有浮点数用引号引起来。通过制作数字字符串。

PHP json_decode integers and floats to string