number_format

数字を千の位毎にグループ化してフォーマットする

説明

string number_format(
    float $num,
    int $decimals = 0,
    stringnull $decimal_separator = ".",
    stringnull $thousands_separator = ","
)

数値を千の位毎にグループ化し、オプションで小数の桁も追加してフォーマットします。小数の桁を追加する場合、四捨五入のルールを使います。

パラメータ

num

フォーマットする数値。

decimals

小数点以下の桁数。 0 を指定すると、 戻り値の decimal_separator は省略されます。

decimal_separator

小数点を表す区切り文字。

thousands_separator

千の位毎の区切り文字。

戻り値

num をフォーマットした結果を返します。

変更履歴

バージョン 説明
8.0.0 これより前のバージョンでは、 number_format 関数は 引数を1個、2個、または4個受け入れていました(つまり、3個はダメでした)。
7.2.0 number_format は、 -0 を返さないように変更されました。 これより前のバージョンでは、 num-0.01 のようなケースで -0 が返される場合がありました。

例1 number_format の例

例えばフランスの表記法では、通常カンマ (',') を小数の区切りとした二桁の小数と、千位毎の区切りとしてスペース (' ') を用います。数値を書式設定するさまざまな方法を次の例で示します。

<?php

$number = 1234.56;

// 英語での表記 (デフォルト)
$english_format_number = number_format($number);
// 1,235

// フランスの表記
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56

$number = 1234.5678;

// 千位毎の区切りがない英語での表記
$english_format_number = number_format($number, 2, '.', '');
// 1234.57

?>

参考

  • money_format
  • sprintf
  • printf
  • sscanf