我试图将一个字符串数字转换成整数,但结果并不如预期。以下是出现问题的代码:
$usage['msisdn'] = "46720000000";
$usage['msisdn'] = (int)$usage['msisdn'];
echo $usage['msisdn'];
这段代码将2147483647作为整数输出,但我想要得到46720000000作为整数。
顺便说一下,我正在使用json_encode()解析数据。
更新: 不用管了,我已经用intval()解决了问题
这是因为 int32
的最大值为 2,147,483,647。您的电话号码超过了这个值。
您可以使用以下代码在服务器上找到 int 的最大值:
echo PHP_INT_MAX;
最大值取决于系统。32位系统具有-2147483648到2147483647的最大有符号整数范围。例如,在这样的系统上,intval('1000000000000')将返回2147483647。64位系统的最大有符号整数值为9223372036854775807。
来源:http://php.net/manual/en/function.intval.php
由于您不能轻松修改max_int值,因此可以尝试使用转换为浮点数。
$usage['msisdn'] = floatval($usage['msisdn']);
在PHP中处理大数字
我在处理一个需要使用非常大的整数的应用程序。PHP浮点和double类型的变量不能包含我的数据集,所以我认为我需要使用字符串或其他类型。我需要执行基本的算术运算(加,减,乘,除),比较,格式化和转换到十六进制。有哪些建议或库可以实现这些功能? - Sougata Bose