php converting formatted int to int

旧城冷巷雨未停 提交于 2019-12-17 20:21:52

问题


Sorry for asking this but, I cant found a solution that will get this -> 7,000 to 7000.

I'm using intval() and number_format() but it will just give me 7 not 7000.

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

this returns 7

same goes with number_format()

what am I doing wrong?


回答1:


intval() won't work with the string you have because of the comma. You can remove the comma by using str_replace() and then calling intval() like so:

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




回答2:


If you are using PHP >= 5.3 (or have the "intl" extension installed, with at least version 1.0) then you could also use the NumberFormatter class to parse a locale-specific number.

$myVal = '7,000';
$nf = new NumberFormatter("en_EN", NumberFormatter::DECIMAL);

var_dump($nf->parse($myVal, NumberFormatter::TYPE_INT32));

# output: int(7000)

If you're using a PHP-version less than 5.3 you're better of using @KevinS. solution.



来源:https://stackoverflow.com/questions/11026640/php-converting-formatted-int-to-int

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!