【问题标题】:php converting formatted int to intphp将格式化的int转换为int
【发布时间】:2012-06-17 02:31:12
【问题描述】:

很抱歉问这个问题,但是我找不到可以得到这个的解决方案 -> 7,000 到 7000。

我正在使用 intval() 和 number_format() 但它只会给我 7 而不是 7000。

$myVal = '7,000';
echo intval($myVal);

返回 7

number_format() 也是如此

我做错了什么?

【问题讨论】:

  • 您的 php 安装是否本地化到 , 是小数分隔符的国家/地区?
  • 查看您的本地化版本,了解@Greg 所说的内容,顺便问一下,您使用的是 Windows 吗?

标签: php number-formatting


【解决方案1】:

intval() 将无法与您拥有的字符串一起使用,因为逗号。您可以使用str_replace() 删除逗号,然后像这样调用intval()

echo intval(str_replace(',', '', $myVal))

【讨论】:

    【解决方案2】:

    如果您使用的是 PHP >= 5.3(或安装了“intl”扩展,至少版本为 1.0),那么您还可以使用 NumberFormatter 类来解析特定于语言环境的数字。

    $myVal = '7,000';
    $nf = new NumberFormatter("en_EN", NumberFormatter::DECIMAL);
    
    var_dump($nf->parse($myVal, NumberFormatter::TYPE_INT32));
    
    # output: int(7000)
    

    如果您使用低于 5.3 的 PHP 版本,您最好使用@KevinS。解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-05
      • 2020-10-30
      • 2013-01-01
      • 1970-01-01
      • 2014-04-17
      相关资源
      最近更新 更多