【发布时间】:2021-10-21 20:23:32
【问题描述】:
PHP 7.3.4
当我使用时
$val = '1,234.00';
echo number_format($val, 2, '.', '');
我明白了
1 (desired output is 1234.00)
如果我这样做
$val = '1,234.00';
$val = str_replace([',', '$'], '', $val);
echo number_format($val, 2, '.', '');
我明白了
1234.00
为什么第一个不起作用?我对 number_format 函数缺少什么?
【问题讨论】:
-
number_format() 将浮点数作为第一个参数,你给它一个已经格式化的字符串。
-
number_format(float $num, . . . )当该字符串转换为float时,它是1,因为它会截断无效字符以及之后的所有内容。见echo (float)'1,234.00'; -
不,不要浮动 $val。在
number_format()之前使用$val = str_replace(',', '', $val);。 -
@cottton 我没有对
float说它,这只是说明它的作用。 -
建议开启所有错误报告,php会显示“注意:在...中遇到格式不正确的数值”
标签: php