【问题标题】:Proper way of converting string to long int in PHP在 PHP 中将字符串转换为 long int 的正确方法
【发布时间】: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


【解决方案1】:

只要您对最终得到的值不是很特别,"number" + 0 可能是转换输入的最佳方式,因为它会转换为“自然”数字数据类型。

如果输入没有小数部分并且适合(请参阅PHP_INT_MAX),则结果将是一个整数;如果不适合,则结果将是一个浮点数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-06
    • 2014-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多