6

我正在做一些计算,最终得到65.0or 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.

那么如何在我的数字上添加一个额外的小数呢?

4

3 回答 3

23

number_format()您需要两个或四个参数。三人总会犯错。

对您来说,以下两种方式的工作方式相同:

$total = number_format($total, 2);

$total = number_format($total, 2, '.', ',');
于 2012-08-06T13:44:56.727 回答
4

如果您提到小数分隔符,您还必须使用千位分隔符。

所以要么做

number_format($total, 2);

或者

number_format($total, 2, '.', ',');

这是文档。

由于某些地区,用作小数分隔符,因此number_format($total, 2)并非普遍正确。为确保获得所需的结果,您必须使用number_format($total, 2, '.', ',');.

于 2012-08-06T13:45:37.273 回答
0

为什么不是一个普通的旧的$total = sprintf("%01.2f", $total)

编辑:

100 万次迭代计时$n = 3.14159

$total = sprintf("%01.2f", $n);               9.148s
$total = number_format($n, 2);                8.296s
$total = number_format($n, 2, ".", ",");     10.944s

所以略好于带有分隔符sprintf的成熟。number_format

于 2012-08-06T13:47:56.803 回答