【发布时间】:2012-03-08 17:09:53
【问题描述】:
我已经搜索了一段时间,但我能找到的并不是我要搜索的。我需要将一个可能非常大的整数值转换为字符串。听起来很简单:"$var"?不,因为这会导致数字的 E+ 表示形式。
<?php
$var = 10000000000000000000000000;
echo $var."\n";
echo "'$var'\n";
echo (string) $var."\n";
echo strval($var);
?>
1.0E+25
'1.0E+25'
1.0E+25
1.0E+25
我怎样才能将输出改为10000000000000000000000000?
【问题讨论】:
-
请注意,您的“非常大的整数”在您的计算机中没有表示为整数,因为它超出了 32 位和 64 位的界限。
-
$var = '10000000000000000000000000';
-
您不能使用本机 int 值执行此操作。它将必须存储为字符串。如果您要对这个数字进行数学运算,则必须使用 bcmath 库。
-
请注意,如果您从 JSON 解码大整数,您可以使用
JSON_BIGINT_AS_STRING作为json_decode的第四个参数
标签: php casting integer type-conversion