money_format() は、number をフォーマットして返します。この関数は C のライブラリ関数 strfmon() をラップしたものですが、一度に 変換できる数値がひとつだけであるという点が異なります。
注意: システムで strfmon が使用可能な場合のみ money_format() 関数が定義されます。例えば、Windows では strfmon は使用できません。 そのため money_format() は Windows では 定義されていません。
フォーマット指定の書式は以下の順になります。
% 文字
フラグ(オプション)
フィールドの幅(オプション)
左精度(オプション)
右精度(オプション)
変換文字(必須)
フラグ. 以下のフラグのうちひとつあるいは複数が使用可能です。
文字 = の後に続く(シングルバイトの)文字 f が、数値埋め文字として使用されます。 デフォルトはスペース文字です。
グループ化文字(現在のロケールで定義されている)を使用しないように します。
正の数、負の数の書式を指定します。+ が使用された 場合、+ および - に該当する そのロケールの符号マークが使用されます。( が使用された場合、負の数は括弧で囲まれます。何も指定しなかった 場合、デフォルトは + です。
出力文字列から通貨記号を除きます。
指定した場合、すべてのフィールドを左詰め(右側に数値埋め文字が追加 される)にします。デフォルトはこれと反対で、すべてのフィールドを 右詰め(左側に数値埋め文字が追加される)にします。
フィールドの幅.
10 進の数値文字列で、フィールドの幅の最小値を指定します。フラグ - が使用されていない限り、フィールドは 右詰めとなります。デフォルト値は 0(ゼロ) です。
左精度.
10 進の基準文字(例: 小数点)より左側の最大の桁数 (n) を指定します。これは通常、 n より少ない桁数の数値に対して 数値埋め文字を使用することで、出力の桁位置をそろえるために 使用されます。実際の桁数が n より 大きい場合、この設定は無視されます。
^ フラグでグループ化文字が抑止されていない場合、 (もし存在するなら)数値埋め文字が追加される前にグループ化文字が 挿入されます。グループ化文字は数値埋め文字には適用されません。 たとえ数値埋め文字が数字であったとしても同様です。
位置あわせを確実にするため、出力中の数値の前後に表れる文字(たとえば 通貨記号や符号など)は、必要に応じて(正の数と負の数の長さをそろえるなど の理由で)スペース文字が付加されることがあります。
右精度 .
ピリオドに続く数値(p) で、10 進の基準文字以降の桁数を指定します。 p の値が 0(ゼロ)であった場合、基準文字と それ以降の数値は省略されます。右精度が指定されていない場合、 使用中の現在のロケールからデフォルト値を検出します。 フォーマットされる数値は、フォーマット前にこの桁数に丸められます。
変換文字 .
ロケールの国際通貨フォーマット(例: USA ロケールでは USD 1,234.56)によってフォーマットします。
ロケールの国内通貨フォーマット(例: de_DE ロケールでは DM1.234,56)によってフォーマットします。
% 文字を返します。
注意: ロケール設定のうち、LC_MONETARY カテゴリの内容が この関数の振る舞いに影響します。この関数を使用する前に、 setlocale() で適切なデフォルトロケールを 設定してください。
フォーマット文字列の前後の文字は、そのまま返されます。
setlocale()、 number_format()、sprintf()、 printf() および sscanf() も参照ください。