在 PHP 中打印货币数字格式

2022-08-30 09:41:55

我有一些价格值要在我的页面中显示的。

我正在编写一个函数,该函数采用浮动价格并返回带有货币代码的格式化货币val。

例如,应打印fnPrice(1001.01)$ 1,000.01


答案 1

最简单的答案是number_format()

echo "$ ".number_format($value, 2);

如果您希望应用程序能够使用多种货币和区域设置感知格式(例如,对于我们中的一些欧洲人来说),它将变得更加复杂。1.000,00

money_format()但它在Windows上不起作用,并且依赖于,在我看来这是垃圾,因为它需要在服务器端安装(任意命名的)区域设置包。setlocale()

如果你想认真地将你的应用程序国际化,可以考虑使用一个成熟的国际化库,比如Zend Framework的Zend_LocaleZend_Currency


答案 2

使用 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 €

推荐