【发布时间】:2014-07-23 00:29:43
【问题描述】:
我试过(int) "4209531264" 和intval("4209531264")
但可悲的是,我得到的只是2147483647(我意识到这是因为 32 位架构或一些 php 依赖项或其他原因)。
我想出了"4209531264" + 0,它返回了正确的结果,但令人惊讶的是它的工作原理,因为它超出了maxint。
但真正的问题是:这是将字符串转换为长字符串的“正确方法”吗?
编辑:
(float) 就是这样。
感谢 cmets!大开眼界!
【问题讨论】:
-
(float) "your string" -
您使用的是 32 位平台吗?您需要使用
float而不是int,因为该数字对于 32 位有符号整数来说太大了。 -
最大值取决于系统。 32 位系统的最大有符号整数范围为 -2147483648 到 2147483647。例如,在这样的系统上,intval('1000000000000') 将返回 2147483647。php.net/manual/en/function.intval.php
-
2147483647 是 32 位系统上的最大整数值。
-
相关
var_dump(PHP_INT_MAX);
标签: php string casting long-integer typeconverter