小数点以下2桁までの数値を表示する

2010年12月19日に質問されました。  ·  閲覧回数 1.2M回  ·  ソース

Rich Bradshaw picture
2010年12月19日

PHP文字列を小数点以下2桁に丸める正しい方法は何ですか?

$number = "520"; // It's a string from a database

$formatted_number = round_to_2dp($number);

echo $formatted_number;

出力は520.00必要があります;

round_to_2dp()関数の定義はどのようにすべきですか?

回答

Codemwnci picture
2010年12月19日
1190

number_format()を使用できます:

return number_format((float)$number, 2, '.', '');

例:

$foo = "105";
echo number_format((float)$foo, 2, '.', '');  // Outputs -> 105.00

この関数は文字列を返し

Somnath Muluk picture
2011年12月01日
246

round()使用します(float形式の数値のみを期待している場合に使用します。それ以外の場合は、Codemwnciによって与えられた回答としてnumber_format()を使用

echo round(520.34345, 2);   // 520.34
echo round(520.3, 2);       // 520.3
echo round(520, 2);         // 520

マニュアルから:

説明:

float round(float $val [, int $precision = 0 [, int $mode = PHP_ROUND_HALF_UP ]]);

valの丸められた値を指定されたprecision (小数点以下の桁数)に返します。 precisionは、負またはゼロ(デフォルト)にすることもできます。

..。

例1 round()

<?php
    echo round(3.4);         // 3
    echo round(3.5);         // 4
    echo round(3.6);         // 4
    echo round(3.6, 0);      // 4
    echo round(1.95583, 2);  // 1.96
    echo round(1241757, -3); // 1242000
    echo round(5.045, 2);    // 5.05
    echo round(5.055, 2);    // 5.06
?>

例2モードの例

<?php
    echo round(9.5, 0, PHP_ROUND_HALF_UP);   // 10
    echo round(9.5, 0, PHP_ROUND_HALF_DOWN); // 9
    echo round(9.5, 0, PHP_ROUND_HALF_EVEN); // 10
    echo round(9.5, 0, PHP_ROUND_HALF_ODD);  // 9

    echo round(8.5, 0, PHP_ROUND_HALF_UP);   // 9
    echo round(8.5, 0, PHP_ROUND_HALF_DOWN); // 8
    echo round(8.5, 0, PHP_ROUND_HALF_EVEN); // 8
    echo round(8.5, 0, PHP_ROUND_HALF_ODD);  // 9
?>
Marc B picture
2010年12月19日
206

または、

$padded = sprintf('%0.2f', $unpadded); // 520 -> 520.00
SystemX17 picture
2010年12月19日
38

http://php.net/manual/en/function.round.php

例えば

echo round(5.045, 2);    // 5.05

echo round(5.055, 2);    // 5.06
Biju picture
2013年01月11日
26

試してください:

$number = 1234545454; 
echo  $english_format_number = number_format($number, 2); 

出力は次のようになります。

1,234,545,454.00
Aditya P Bhatt picture
2015年03月09日
16

PHPのprintfまたはsprintf関数を使用できます。

sprintf

$num = 2.12;
echo sprintf("%.3f", $num);

echoなしでも同じように実行できます。 例: sprintf("%.3f", $num);

出力:

2.120

または、 printfます。

echo printf("%.2f", $num);

出力:

2.124
Sani Kamal picture
2018年05月21日
16

PHPのnumber_format()関数を使用します。

例えば、

$num = 7234545423;
echo number_format($num, 2);

出力は次のようになります。

7,234,545,423.00
powtac picture
2017年02月15日
13

この問題を解決するもう1つのエキゾチックな方法は、 bcadd()0の$ right_operandのダミー値とともに使用することです。

$formatted_number = bcadd($number, 0, 2);
Shamim Hafiz picture
2010年12月19日
9

PHPのnumber_format()関数を使用します。

Wasim A. picture
2016年02月26日
8
bcdiv($number, 1, 2) // 2 varies for digits after the decimal point

これにより、小数点以下2桁が表示されます。

利点:

整数ではなく浮動小数点値の後に2桁を表示する場合は、これを使用します。