回答
最简单的答案是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. 格式货币
- 3. 货币格式
- 4. 货币格式
- 5. 格式字符串数字到货币
- 6. 货币格式数VB.NET
- 7. jquery数字格式是货币
- 8. 将货币格式转换为数字
- 9. ZF2货币格式
- 10. C#格式货币
- 11. 货币格式laravel
- 12. 格式化货币
- 13. 格式化货币
- 14. 格式化货币
- 15. C#货币格式
- 16. PHP的货币格式不显示货币符号
- 17. 带货币符号的PHP货币格式
- 18. 用C++格式化货币
- 19. 如何在javascript中打印货币格式
- 20. 将货币格式化为字符串时指定货币
- 21. PHP:格式没有货币千分
- 22. PHP货币格式化尾随
- 23. 在php中的货币格式?
- 24. PHP JSON格式货币逗号
- 25. 货币的数据表格格式
- 26. 货币数字格式使用电子表格宝石
- 27. 与对准字符串格式货币
- 28. asp.net中的货币格式字符串
- 29. 格式字符串作为货币
- 30. Rails - 在Getter中格式化为货币格式的数字
+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