为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
烙印99 2019-10-19 14:43:29
我有一个价格列表,逗号带有小数点,点是千位分隔符。一些例子:12,30 116,10 1.563,14这些来自第三方。我想将它们转换为浮点数并将它们添加在一起。做这个的最好方式是什么?number_format似乎不适用于这种格式,str_replace似乎有点过头了,因为我必须对每个数字进行一次以上的操作。有更好的办法吗?谢谢。
查看完整描述

3 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

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


查看完整回答
反对 回复 2019-10-19
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

此功能适用于点或逗号为小数的数字


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


查看完整回答
反对 回复 2019-10-19
  • 3 回答
  • 0 关注
  • 568 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信