php - 将逗号作为小数点的数字转换为 float

标签 php parsing floating-point

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

一些例子:

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/

相关文章:

c# - 解析格式错误的 XML

java - 比较字符串和整数 (java)

c++ - 是否可以在 C++ 中使用递归 vector ?

php - 如何修复未定义的方法 PHPMailer::AddAdress() 错误?

php - 如果不禁用 SSL,代码将无法工作

php - 如何使用 PHPUnit 模拟 SimpleXMLElement 对象?

java - 使用 Java 迭代所有浮点值

floating-point - OCaml 如何管理 float 加法?

linux - GCC 在不同的优化级别上以不同方式处理 float 比较