我有一个价格列表,小数点用逗号表示,千位分隔符用点表示。
一些例子:
12,30
116,10
1.563,14
这些来自第三方的这种格式。我想将它们转换为 float 并将它们加在一起。
最好的方法是什么? number_format 似乎不适用于这种格式,而 str_replace 似乎有点矫枉过正,因为我必须在每个数字上多做一次。
有没有更好的方法?谢谢。
最佳答案
使用 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 密集度最低的方式,而且即使您使用一些花哨的功能来做到这一点,这也是它在幕后所做的事情。
关于php - 将逗号作为小数点的数字转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4325363/