我正在做一些计算,最后得到65.0
或43.5
我需要在这个数字上加零,以便我的数字比较起作用:
$this->sub_total == $order_sub_total
我已经使用number_format()进行了测试:
$total = number_format($total, 2, '.');
但这给了我一些消息:Wrong parameter count for number_format()
我很想做:
$total = $total.'0';
但我认为如果数字为35.43
,这是一个坏主意。
那么如何在我的号码中添加额外的小数?
答案 0 :(得分:16)
使用number_format()
,您需要两个或四个参数。三个人总是会犯一个错误。
对于您而言,以下两者的工作方式相同:
$total = number_format($total, 2);
$total = number_format($total, 2, '.', ',');
答案 1 :(得分:2)
如果你提到小数点分隔符,你还必须使用千位分隔符。
所以要么
number_format($total, 2);
OR
number_format($total, 2, '.', ',');
由于某些地区使用,
作为小数点分隔符,因此number_format($total, 2)
不是普遍正确的。为确保获得所需的结果,您必须使用number_format($total, 2, '.', ',');
。
答案 2 :(得分:0)
为什么不是普通的$total = sprintf("%01.2f", $total)
?
编辑:
使用$n = 3.14159
计时100万次迭代:
$total = sprintf("%01.2f", $n); 9.148s
$total = number_format($n, 2); 8.296s
$total = number_format($n, 2, ".", ","); 10.944s
所以sprintf
略好于带有分隔符的完整版number_format
。