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

2number_format()つまたは 4 つのパラメーターが必要です。3つは常にエラーになります。

あなたにとって、次の両方が同じように機能します。

$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 に答える