【问题标题】:Converting a String to an Integer returns 2147483647将字符串转换为整数返回 2147483647
【发布时间】:2013-03-10 02:00:46
【问题描述】:

很多其他人似乎都遇到过这个问题,但通常与 MySQL 数据类型相关。

我正在尝试将字符串转换为整数,如下所示:

$adGroupId  = '5947939396';
$adGroupId  = intval($adGroupId)

但是返回的整数是 2147483647,与输入的字符串无关。

【问题讨论】:

标签: php


【解决方案1】:

该数字太大而无法放入整数数据类型(如上所示,最大整数值为 2147483647)。 Converting it to a float instead will work:

$adGroupId  = '5947939396';
$adGroupId  = floatval($adGroupId)

【讨论】:

  • 谢谢,虽然 floatval 将字符串作为 gettype double 而不是整数返回?
  • @Boomfelled 这就是重点。你的数字(水)对于整数(桶)来说太大了,所以使用 floatval 就像使用更大的桶一样。如果您最终要尝试将此数字插入到 mysql 整数字段中,则您还需要更改该字段的类型,否则您将遇到类似的问题。
  • @Boomfelled 没问题。如果它对您有所帮助,请务必通过单击帖子左侧的绿色复选标记将其标记为答案。或者对其他答案这样做,因为它基本相同:)
【解决方案2】:

这是因为2147483647 是最大整数值。你可以使用floatval

$adGroupId  = '5947939396';
$adGroupId  = floatval($adGroupId);
echo $adGroupId;

【讨论】:

    【解决方案3】:

    只需将其类型转换为浮点数

    $adGroupId = (float)$adGroupId;
    

    接受的答案与这一差异之间的参考: Typecasting vs function to convert variable type in PHP

    【讨论】:

      猜你喜欢
      • 2013-09-30
      • 1970-01-01
      • 1970-01-01
      • 2012-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-01
      • 2011-11-15
      相关资源
      最近更新 更多