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)