String 関数
PHP Manual

number_format

(PHP 4, PHP 5)

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

説明

string number_format ( float $number [, int $decimals = 0 ] )
string number_format ( float $number , int $decimals = 0 , string $dec_point = '.' , string $thousands_sep = ',' )

この関数は 1 つか 2 つもしくは 4 つのパラメータを受け取ります (3 つはありません) :

パラメータが 1 つだけ渡された場合、 number は千位毎にカンマ (",") が追加され、 小数なしでフォーマットされます。

パラメータが 2 つ渡された場合、numberdecimals 桁の小数の前にドット (".") 、 千位毎にカンマ (",") が追加されてフォーマットされます。

パラメータが 4 つ全て渡された場合、number はドット (".") の代わりに dec_pointdecimals 桁の小数の前に、千位毎にカンマ (",") の代わりに thousands_sep が追加されてフォーマットされます。

返り値

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

パラメータ

number

フォーマットする数値。

decimals

小数点以下の桁数。

dec_point

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

この関数は区切り文字の最初のバイトだけを使います。つまり、 マルチバイト文字を指定しても動作 しない ということです。指定した場合、壊れたマルチバイトシーケンスになってしまいます。

thousands_sep

千位毎の区切り文字。

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($number2','' ');
// 1 234,56

$number 1234.5678;

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

?>

参考


String 関数
PHP Manual