當前位置: 首頁> 最新文章列表> 怎麼用PHP的money_format函數把金額格式化成帶千分位的貨幣形式?

怎麼用PHP的money_format函數把金額格式化成帶千分位的貨幣形式?

gitbox 2025-07-09

在PHP中, money_format函數是一個常用的工具,用來將數字格式化為貨幣形式。它根據系統的區域設置(locale)來調整貨幣符號、分隔符以及小數位的顯示方式。這個函數能夠很方便地將數值格式化成帶有千分位的貨幣形式。

使用money_format函數的基本語法

<span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-title function_ invoke__">money_format</span></span><span> ( </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$format</span></span><span> , </span><span><span class="hljs-keyword">float</span></span><span> </span><span><span class="hljs-variable">$number</span></span><span> )
</span></span>
  • $format :是一個格式化字符串,通常包含了貨幣符號(例如$等)以及千分位符、十進制符等格式化字符。

  • $number :是需要格式化的數字。

1. 設置正確的區域(Locale)

在使用money_format函數之前,需要先設置正確的區域,以確保格式化輸出符合你希望的貨幣格式。 PHP 通過setlocale函數來設置區域。

 <span><span><span class="hljs-title function_ invoke__">setlocale</span></span><span>(LC_MONETARY, </span><span><span class="hljs-string">'en_US.UTF-8'</span></span><span>);  </span><span><span class="hljs-comment">// 設置為美國英語區域,使用美元符號和千分位符</span></span><span>
</span></span>

在這行代碼中,我們設置了區域為美國英語en_US.UTF-8 ,這意味著所有與貨幣相關的格式都將採用美國的標準,包括美元符號$ 、千分位符,和小數點.

2. 格式化金額

接下來,你可以使用money_format來格式化金額。例如,假設你要格式化一個數字為貨幣形式:

 <span><span><span class="hljs-variable">$amount</span></span><span> = </span><span><span class="hljs-number">1234567.89</span></span><span>;
</span><span><span class="hljs-variable">$formattedAmount</span></span><span> = </span><span><span class="hljs-title function_ invoke__">money_format</span></span><span>(</span><span><span class="hljs-string">'%.2n'</span></span><span>, </span><span><span class="hljs-variable">$amount</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$formattedAmount</span></span><span>;  </span><span><span class="hljs-comment">// 輸出:$1,234,567.89</span></span><span>
</span></span>

這裡的格式化字符串'%.2n'的意思是:

  • %.2 :表示保留兩位小數。

  • n :表示輸出帶有貨幣符號的數字,並且適應當前區域的設置。

3. 如何顯示不同的貨幣符號

如果你想格式化成不同貨幣符號的金額(例如,歐元、英鎊等),你只需要調整區域設置。例如:

 <span><span><span class="hljs-title function_ invoke__">setlocale</span></span><span>(LC_MONETARY, </span><span><span class="hljs-string">'de_DE.UTF-8'</span></span><span>);  </span><span><span class="hljs-comment">// 設置為德國的區域,使用歐元符號</span></span><span>
</span><span><span class="hljs-variable">$formattedAmount</span></span><span> = </span><span><span class="hljs-title function_ invoke__">money_format</span></span><span>(</span><span><span class="hljs-string">'%.2n'</span></span><span>, </span><span><span class="hljs-variable">$amount</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$formattedAmount</span></span><span>;  </span><span><span class="hljs-comment">// 輸出:1.234.567,89 €</span></span><span>
</span></span>

在德國的區域設置下,貨幣格式發生了變化,千分位符變成了. ,而小數點符號變成了, ,貨幣符號則是歐元符號

4. 注意事項

  • money_format只能在支持該函數的操作系統中使用。通常,在類Unix 系統(如Linux 和macOS)中, money_format是可用的,但在Windows 系統中可能不可用。如果你的開發環境是Windows,可以考慮使用其他格式化方法,比如number_format

  • money_format會根據當前區域的設置自動適配格式,所以在不同區域可能得到不同的格式化結果。

5. 使用number_format作為替代

如果你不需要依賴系統的區域設置,或者在不支持money_format的系統中工作,可以使用PHP 的number_format函數來手動格式化金額並添加千分位符:

 <span><span><span class="hljs-variable">$formattedAmount</span></span><span> = </span><span><span class="hljs-string">'$'</span></span><span> . </span><span><span class="hljs-title function_ invoke__">number_format</span></span><span>(</span><span><span class="hljs-variable">$amount</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-string">'.'</span></span><span>, </span><span><span class="hljs-string">','</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$formattedAmount</span></span><span>;  </span><span><span class="hljs-comment">// 輸出:$1,234,567.89</span></span><span>
</span></span>

number_format函數提供了以下參數:

  • 第一個參數:數字。

  • 第二個參數:小數點後保留的位數。

  • 第三個參數:小數點符號(通常是. )。

  • 第四個參數:千分位符號(通常是, )。

結論

PHP 的money_format函數是一個非常方便的工具,尤其在處理貨幣格式化時,它能夠根據不同區域的設置自動調整格式,省去了許多手動處理的麻煩。然而,記得檢查你所在的開發環境是否支持該函數,如果不支持,可以使用number_format來代替。