1

number_format デフォルトで愚かに数値を丸めます。丸めをオフにする簡単な方法はありますか? 私はランダムに生成された数字を扱っていて、次のようなものを得ることができました...

42533 * .003 = 127.599 または、
42533 * .03 = 1275.99 または、
42533 * .3 = 12759.9

結果を従来の米国形式 (カンマで千単位を区切る) で表現し、小数点以下を四捨五入しないようにするには、number_format (または他の何か) が必要です。

何か案は?

4

3 に答える 3

1

number_formatの 2 番目の引数は、数値の小数点以下の桁数です。それを見つける最も簡単な方法は、おそらくそれを文字列として扱うことです(この質問に従って)。従来の US 形式がデフォルトの動作であるため、残りの引数を指定する必要はありません。

$num_decimals = strlen(substr(strrchr($number, "."), 1));
$formatted_number = number_format($number, $num_decimals);
于 2013-09-28T20:08:30.730 に答える
0

私はこれらの解決策を試しましたが、最終的に私の答えはこれでした:

$output=money_format('%!i', $value);

これにより、3,234 または 3,234.9 ではなく、3,234.90 のような値が得られます。

于 2015-03-01T23:26:04.377 に答える
0

誰かがこれに興味を持っている場合は、この問題を回避するための小さな関数を書きました。

上記のJoel Hinzの功績により、私は思いつきました...

function number_format_with_decimals($value, $round_to){
    //$value is the decimal number you want to show with number_format.
    //$round_to is the deicimal place value you want to round to.

    $round_to_decimals = strlen(substr(strrchr($value, "."), $round_to));
    $ans = number_format($value, $round_to);

    return $ans;
}
于 2013-10-26T19:15:06.847 に答える