在 PHP 中打印货币数字格式
2022-08-30 09:41:55
我有一些价格值要在我的页面中显示的。
我正在编写一个函数,该函数采用浮动价格并返回带有货币代码的格式化货币val。
例如,应打印fnPrice(1001.01)
$ 1,000.01
我有一些价格值要在我的页面中显示的。
我正在编写一个函数,该函数采用浮动价格并返回带有货币代码的格式化货币val。
例如,应打印fnPrice(1001.01)
$ 1,000.01
最简单的答案是number_format()
。
echo "$ ".number_format($value, 2);
如果您希望应用程序能够使用多种货币和区域设置感知格式(例如,对于我们中的一些欧洲人来说),它将变得更加复杂。1.000,00
有money_format()
但它在Windows上不起作用,并且依赖于,在我看来这是垃圾,因为它需要在服务器端安装(任意命名的)区域设置包。setlocale()
如果你想认真地将你的应用程序国际化,可以考虑使用一个成熟的国际化库,比如Zend Framework的Zend_Locale和Zend_Currency。
使用 PHP 5.3+ 中的 intl 扩展名,您可以使用 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 €