回答
最簡單的答案是number_format()
。
echo "$ ".number_format($value, 2);
如果你希望你的應用程序能夠與多種貨幣和區域設置的格式(1.000,00
我們一些歐洲人例如)工作,它變得更加複雜一點。
有money_format()
,但它不適用於Windows並依賴於setlocale()
,這在我看來是垃圾,因爲它需要在服務器端安裝(任意命名的)區域設置包。
如果您想嚴格國際化您的應用程序,請考慮使用像Zend Framework的Zend_Locale和Zend_Currency這樣的全面國際化庫。
的sprintf()是用於各種字符串格式化 http://php.net/manual/en/function.sprintf.php
我用這個函數的PHP函數:
function formatDollars($dollars){
return '$ '.sprintf('%0.2f', $dollars);
}
這不會添加逗號(數千個分隔符) – stillstanding 2010-10-25 11:38:45
原諒gravedig。你可以把'$ dollars'(在'sprintf()')中換成'number_format()'。這將爲本機號碼格式添加逗號 – Magictallguy 2014-01-03 05:33:27
與PHP 5.3+的國際擴展,可以使用NumberFormatter類:
$amount = '12345.67';
$formatter = new NumberFormatter('en_GB', NumberFormatter::CURRENCY);
echo 'UK: ', $formatter->formatCurrency($amount, 'EUR'), PHP_EOL;
$formatter = new NumberFormatter('de_DE', NumberFormatter::CURRENCY);
echo 'DE: ', $formatter->formatCurrency($amount, 'EUR'), PHP_EOL;
它打印:
UK: €12,345.67
DE: 12.345,67 €
+1 – KoolKabin 2013-09-06 12:02:13
對於不需要先轉換爲浮點的解決方案非常重要。使用浮動貨幣非常危險。 – 2016-05-20 15:38:39
我構建了這個小函數來自動將任何格式的任何格式格式化爲不錯的貨幣格式。
function formatDollars($dollars)
{
return "$".number_format(sprintf('%0.2f', preg_replace("/[^0-9.]/", "", $dollars)),2);
}
編輯
有人指出,這並不表明負值。我把它分成兩行,所以編輯格式更容易。把它包在括號如果它是一個負值:
function formatDollars($dollars)
{
$formatted = "$" . number_format(sprintf('%0.2f', preg_replace("/[^0-9.]/", "", $dollars)), 2);
return $dollars < 0 ? "({$formatted})" : "{$formatted}";
}
+1的花式功能! – 2014-09-27 20:51:41
這個doens't保留負值 – FlyingNimbus 2016-05-18 13:42:18
這是真的。我已更新該函數以包含負數支持。謝謝@FlyingNimbus – DAWTSF 2016-06-24 15:52:57
PHP有一個這樣做的叫money_format
功能。閱讀關於這個here。
- 1. 印度貨幣的PHP貨幣格式?
- 2. PHP數字格式(貨幣)
- 3. PHP貨幣格式
- 4. 未格式化貨幣格式貨幣
- 5. 數/貨幣格式
- 6. 格式貨幣
- 7. 貨幣格式
- 8. 貨幣格式
- 9. 格式字符串數字到貨幣
- 10. 格式字符串貨幣
- 11. 數字格式化函數值(貨幣)
- 12. C#格式十進制貨幣/貨幣
- 13. 貨幣格式數VB.NET
- 14. 數字貨幣格式問題
- 15. jquery數字格式是貨幣
- 16. 將貨幣格式轉換爲數字
- 17. Sencha貨幣格式
- 18. 貨幣格式C++
- 19. C#貨幣格式
- 20. C#格式貨幣
- 21. Javascript貨幣格式
- 22. 格式化貨幣
- 23. 格式化貨幣
- 24. ZF2貨幣格式
- 25. 貨幣laravel格式
- 26. 貨幣格式laravel
- 27. 格式化貨幣
- 28. INR貨幣格式
- 29. 帶貨幣符號的PHP貨幣格式
- 30. PHP的貨幣格式不顯示貨幣符號
+1不知道有關Windows的這些問題。 – Sarfraz 2010-10-25 11:12:56
不錯的答案,Zend_Locale和Zend_Currency的+1 – RobertPitt 2010-10-25 11:15:14
優秀的答案 – MikeMurko 2013-02-11 17:56:30