php preg_match_所有结果从(数字)字符串到十进制类型
我有一个脚本,它用给定文件中的一些数字以给定格式标识为php preg_match_所有结果从(数字)字符串到十进制类型,php,string,decimal,preg-match-all,Php,String,Decimal,Preg Match All,我有一个脚本,它用给定文件中的一些数字以给定格式标识为preg\u match\u all,(\d\,\d\d\d\d);(十进制,4位小数)。稍后,我需要用它们做一些数学运算来求和、平均值等 使用print\r我可以看到阵列中的所有匹配项,并且一切正常(43456、49098等)。我验证变量的类型,并返回gettype()string 不幸的是,我不能对它们进行数学运算,因为当我在数学表达式中使用变量时,结果总是四舍五入,不管逗号后面是什么 例如: 43456+49098+43456=12,或
preg\u match\u all
,(\d\,\d\d\d\d);
(十进制,4位小数)。稍后,我需要用它们做一些数学运算来求和、平均值等
使用print\r
我可以看到阵列中的所有匹配项,并且一切正常(43456、49098等)。我验证变量的类型,并返回gettype()
string
不幸的是,我不能对它们进行数学运算,因为当我在数学表达式中使用变量时,结果总是四舍五入,不管逗号后面是什么
例如:
43456+49098+43456=12,或120000——如果我使用number\u格式
我在数字中使用了
而不是,
,我用number\u格式
格式化了结果,但没有成功。我好像错过了什么
谢谢你的帮助 PHP使用
字符作为十进制分隔符,因此在将匹配的数字转换为数字之前,必须将,
替换为
:
$number = floatval(strtr("1,234", ",", "."));
// 1.234
例如:
<?php
$numbers = array("1,234", "5,67");
$numbers = str_replace(",", ".", $numbers);
echo number_format($numbers[0] + $numbers[1], 4, ',', ' ');
PHP使用
字符作为十进制分隔符,因此在将匹配的数字转换为数字之前,必须将,
替换为
:
$number = floatval(strtr("1,234", ",", "."));
// 1.234
例如:
<?php
$numbers = array("1,234", "5,67");
$numbers = str_replace(",", ".", $numbers);
echo number_format($numbers[0] + $numbers[1], 4, ',', ' ');
该错误甚至发生在数字\u格式调用之前——PHP将
视为十进制分隔符,而不是,
。您需要替换所有数组元素:
$values_array = str_replace(",", ".", $values_array)
该错误甚至发生在数字格式调用之前——PHP将
视为十进制分隔符,而不是,
。您需要替换所有数组元素:
$values_array = str_replace(",", ".", $values_array)
他一定做错了什么事;“1.24”+1等于2.24,而不是2。他一定做错了什么;“1.24”+1等于2.24,而不是2。