現在の位置: ホーム> 最新記事一覧> Money_Formatを使用して小数点を持つ通貨値をフォーマットする方法は?実用的なガイド

Money_Formatを使用して小数点を持つ通貨値をフォーマットする方法は?実用的なガイド

M66 2025-06-22

1。money_formatとは何ですか?

Money_format()は、現在のロケール(領域設定)を使用して通貨文字列として数字をフォーマットする関数です。その構文は次のとおりです。

 string money_format ( string $format , float $number )

で:

  • $フォーマットはsprintf()で使用される形式と同様のフォーマット制御文字列です。

  • $番号は、フォーマットする番号(金額)です。


2.正しいロケール(ローカリゼーション)を設定する

Money_format()が正しく動作するには、最初にローカリゼーション環境を設定する必要があります。 Setlocale()関数を使用して設定できます。たとえば、米国地域のローカライズされた形式に設定してください。

 setlocale(LC_MONETARY, 'en_US.UTF-8');

さまざまなシステム(特にWindowsおよびLinux)がロケールを異なる方法でサポートすることに注意してください。対応する言語パックをインストールする必要がある場合があります。


3。10進ポイントで通貨をフォーマットします

以下は、フォーマット量の完全な例です。

 setlocale(LC_MONETARY, 'en_US.UTF-8');

$amount = 1234.56;
echo money_format('%.2n', $amount);

出力は次のとおりです。

 $1,234.56

で:

  • 「%.2N」とは、小数点を使用した後に2桁の通貨形式が保持されることを意味します。

  • nは、ロケールで定義された通貨形式タイプです。

  • .2小数点後の数字数を指定します。


4.多言語通貨ディスプレイをサポートします

ユーザー言語に応じて異なる形式の量を動的に表示する場合は、 setlocale()と組み合わせて動的に設定できます。

 $amount = 9876.54;

setlocale(LC_MONETARY, 'de_DE.UTF-8');
echo "ドイツ形式: " . money_format('%.2n', $amount) . "\n";

setlocale(LC_MONETARY, 'fr_FR.UTF-8');
echo "フランス語形式: " . money_format('%.2n', $amount) . "\n";

出力:

 ドイツ形式: 9.876,54 €
フランス語形式: 9 876,54 €

これは、国際的なWebサイト(https://m66.net/ecommerce/intl-supportなど)にとって非常に実用的です。


V.代替ソリューション(PHP 8.0以上に適用)

前述のように、 Money_format()はPHP 8で削除されています。PHPの新しいバージョンを使用している場合は、代わりに( INTL拡張子から) NumberFormatterを使用することをお勧めします。

 $amount = 5678.90;

$fmt = new \NumberFormatter('en_US', \NumberFormatter::CURRENCY);
echo $fmt->formatCurrency($amount, 'USD');

出力:

 $5,678.90

Numberformatterの使用は、新しいバージョンと互換性があるだけでなく、より強力な国際的なサポートを提供し、生産環境にも適しています。