猿问

将以逗号为小数点的数字转换为浮点数

我有一个价格列表,逗号带有小数点,点是千位分隔符。


一些例子:


12,30 

116,10 

1.563,14


这些来自第三方。我想将它们转换为浮点数并将它们添加在一起。


做这个的最好方式是什么?number_format似乎不适用于这种格式,str_replace似乎有点过头了,因为我必须对每个数字进行一次以上的操作。


有更好的办法吗?谢谢。


烙印99
浏览 569回答 3
3回答

开心每一天1111

使用str_replace()去除点并不过分。$string_number = '1.512.523,55';// NOTE: You don't really have to use floatval() here, it's just to prove that it's a legitimate float value.$number = floatval(str_replace(',', '.', str_replace('.', '', $string_number)));// At this point, $number is a "natural" float.print $number;几乎可以肯定,这是执行此操作所需的CPU最少的方法,而且很有可能即使您使用一些高级功能也可以做到这一点。

慕妹3242003

此功能适用于点或逗号为小数的数字function floatvalue($val){            $val = str_replace(",",".",$val);            $val = preg_replace('/\.(?=.*\.)/', '', $val);            return floatval($val);}$number = "1.325.125,54";echo floatvalue($number); // The output is 1325125.54$number = "1,325,125.54"; echo floatvalue($number); // The output is 1325125.54
随时随地看视频慕课网APP
我要回答