一尘不染

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

php

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

一些例子:

12,30
116,10
1.563,14

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

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

有更好的办法吗?谢谢。


阅读 365

收藏
2020-05-26

共1个答案

一尘不染

使用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最少的方法,而且很有可能即使您使用一些高级功能也可以做到这一点。

2020-05-26