(PHP 4, PHP 5)
number_format — 数字を千位毎にグループ化してフォーマットする
この関数は 1 つか 2 つもしくは 4 つのパラメータを受け取ります (3 つはありません) :
パラメータが 1 つだけ渡された場合、 number は千位毎にカンマ (",") が追加され、 小数なしでフォーマットされます。
パラメータが 2 つ渡された場合、number は decimals 桁の小数の前にドット (".") 、 千位毎にカンマ (",") が追加されてフォーマットされます。
パラメータが 4 つ全て渡された場合、number はドット (".") の代わりに dec_point が decimals 桁の小数の前に、千位毎にカンマ (",") の代わりに thousands_sep が追加されてフォーマットされます。
number をフォーマットした結果を返します。
フォーマットする数値。
小数点以下の桁数。
小数点を表す区切り文字。
この関数は区切り文字の最初のバイトだけを使います。つまり、 マルチバイト文字を指定しても動作 しない ということです。指定した場合、壊れたマルチバイトシーケンスになってしまいます。
千位毎の区切り文字。
thousands_sep は最初のバイトだけが使用されます。 例えば、数字の 1000 に対する thousands_sep として & を使用した場合、number_format() は 1&000 を返します。
上の dec_point パラメータで説明したように、 この関数はマルチバイトに対応していません。マルチバイト文字を区切り文字に使うと、 壊れたマルチバイトシーケンスになってしまいます。
例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
?>