money_format( string $format, float $number )は、数値「$number」を、「$format」のフォーマットに基づき、現在のロケールの通貨表記の文字列に、フォーマットする組み込み関数。
定義
「浮動小数点数型 $number」を、「文字列型 $format」のフォーマットに基づき、通貨表記の文字列にフォーマットする組み込み関数。
パラメータ
- 文字列型 $format
- フォーマット。 
- 浮動小数点数型 $number
- フォーマットしたい数値。 
フォーマット
%の後に、空白は入れずに、続けて記述する。
- フラグ
- オプション。 - =f
- 「左精度」に指定した桁数になるまで、どんなシングルバイト文字で埋めるかを指定する。 
- =の後に、シングルバイト文字を指定する。
- 初期設定値は、スペース。 
- ^
- ^を指定すると、桁区切り文字を使用しない。
- +もしくは- (
- 負数のフォーマットを指定。 
- +を指定すると、負数には、- -符号を付加する。
- (を指定すると、負数は、丸括弧- ()で括る。
- 初期設定値は、 - +。
- !
- !を指定すると、通貨記号を表示しない。
- -
- -を指定すると、左詰めにする。
- 何も指定しないと、右詰めにする。 
- 初期設定値は、右詰め。 
 
- フィールドの幅
- オプション。 
- フィールドの幅の最小値を指定する。 
- 初期設定値は、「0」。 
- 左精度
- オプション。 
- #n
- 小数点より左側の桁数「n」を指定する。 
- 桁数が、 - nより少ない場合、- =fに指定した、「f」の文字で埋める。
- 右精度
- オプション。 
- .p
- 小数点より右側の桁数「p」を指定する。 
- 変換文字
- 必須。 - i
- ロケールの国際通貨フォーマット。 
- 日本円の場合、 - JPY 1,235。
- n
- ロケールの国内通貨フォーマット。 
- 日本円の場合、 - ¥1,235。
- %
- パーセント記号。 
 
構文
数値を、通貨表記の文字列に、フォーマット
「数値」を、現在のロケールの通貨表記の文字列に、フォーマットする。
戻り値
「浮動小数点数型 $number」を、現在のロケールの通貨表記の文字列に、フォーマットした文字列を返す。
サンプル
ja_JP ロケールの国際通貨フォーマット
小数点以下第1位を四捨五入する。
<?php
$number = 1234.5678;
setlocale( LC_MONETARY, "ja_JP.UTF8" );
echo money_format( "%i", $number ) . "\n";
?>
</pre>
↓↓↓出力結果↓↓↓
ja_JP ロケールの国内通貨フォーマット
小数点以下第1位を四捨五入する。
<?php
$number = 1234.5678;
setlocale( LC_MONETARY, "ja_JP.UTF8" );
echo money_format( "%n", $number ) . "\n";
?>
</pre>
↓↓↓出力結果↓↓↓
en_US ロケールの国際通貨フォーマット
小数点以下第3位を四捨五入する。
<?php
$number = 1234.5678;
setlocale( LC_MONETARY, "en_US.UTF8" );
echo money_format( "%i", $number ) . "\n";
?>
</pre>
↓↓↓出力結果↓↓↓
en_US ロケールの国内通貨フォーマット
小数点以下第3位を四捨五入する。
<?php
$number = 1234.5678;
setlocale( LC_MONETARY, "en_US.UTF8" );
echo money_format( "%n", $number ) . "\n";
?>
</pre>
↓↓↓出力結果↓↓↓
桁数を指定
桁数を「8」に指定。
<?php
$numberA = 1234.5678;
$numberB = 12345678;
setlocale( LC_MONETARY, "ja_JP.UTF8" );
echo money_format( "%#8i", $numberA ) . "\n";
echo money_format( "%#8i", $numberB ) . "\n";
echo money_format( "%#8n", $numberA ) . "\n";
echo money_format( "%#8n", $numberB ) . "\n";
?>
</pre>
↓↓↓出力結果↓↓↓
JPY 12,345,678
¥ 1,235
¥12,345,678
桁数が「8」になるまで、「*」で埋める
<?php
$numberA = 1234.5678;
$numberB = 12345678;
setlocale( LC_MONETARY, "ja_JP.UTF8" );
echo money_format( "%=*^#8i", $numberA ) . "\n";
echo money_format( "%=*^#8i", $numberB ) . "\n";
echo money_format( "%=*^#8n", $numberA ) . "\n";
echo money_format( "%=*^#8n", $numberB ) . "\n";
?>
</pre>
↓↓↓出力結果↓↓↓
JPY 12345678
¥****1235
¥12345678
小数点以下の桁数を指定
小数点以下の桁数を「2」に指定。
小数点以下第3位を四捨五入し、小数点以下第2位まで表示する。
<?php
$number = 1234.5678;
setlocale( LC_MONETARY, "ja_JP.UTF8" );
echo money_format( "%.2i", $number ) . "\n";
echo money_format( "%.2n", $number ) . "\n";
?>
</pre>
↓↓↓出力結果↓↓↓
¥1,234.57
フィールドの幅を指定(右詰め)
フィールドの幅を「30」に指定。
右詰め。
<?php
$number = 1234.5678;
setlocale( LC_MONETARY, "ja_JP.UTF8" );
echo money_format( "%30i", $number ) . "\n";
echo money_format( "%30n", $number ) . "\n";
?>
</pre>
↓↓↓出力結果↓↓↓
¥1,235
フィールドの幅を指定(左詰め)
フィールドの幅を「30」に指定。
左詰め。
<?php
$number = 1234.5678;
setlocale( LC_MONETARY, "ja_JP.UTF8" );
echo money_format( "%-30i", $number ) . "\n";
echo money_format( "%-30n", $number ) . "\n";
?>
</pre>
↓↓↓出力結果↓↓↓
¥1,235
桁区切り文字を表示しない
<?php
$number = 1234.5678;
setlocale( LC_MONETARY, "ja_JP.UTF8" );
echo money_format( "%^i", $number ) . "\n";
echo money_format( "%^n", $number ) . "\n";
?>
</pre>
↓↓↓出力結果↓↓↓
¥1235
通貨記号を表示しない
<?php
$number = 1234.5678;
setlocale( LC_MONETARY, "ja_JP.UTF8" );
echo money_format( "%!i", $number ) . "\n";
echo money_format( "%!n", $number ) . "\n";
?>
</pre>
↓↓↓出力結果↓↓↓
1,235
負数のフォーマットを指定
<?php
$number = -1234.5678;
setlocale( LC_MONETARY, "ja_JP.UTF8" );
echo money_format( "%i", $number ) . "\n";
echo money_format( "%n", $number ) . "\n";
echo money_format( "%(i", $number ) . "\n";
echo money_format( "%(n", $number ) . "\n";
?>
</pre>
↓↓↓出力結果↓↓↓
¥-1,235
(JPY1,235)
(¥1,235)