如何将数字转换为显示美元和美分的字符串?
eg:
123.45 => '$123.45'
123.456 => '$123.46'
123 => '$123.00'
.13 => '$0.13'
.1 => '$0.10'
0 => '$0.00'
答案 0 :(得分:69)
PHP也有money_format()。
以下是一个例子:
echo money_format('$%i', 3.4); // echos '$3.40'
此功能实际上有很多选项,请转到我链接到的文档以查看它们。
注意:在Windows中未定义money_format。
答案 1 :(得分:69)
答案 2 :(得分:11)
我试过了money_format()
但它对我来说根本不起作用。然后我尝试了以下一个。它对我来说很完美。希望它也会以正确的方式为你工作.. :))
你应该使用这个
number_format($money, 2,'.', ',')
它将以货币格式显示最多2位小数的货币编号。
答案 3 :(得分:6)
在PHP和C ++中,您可以使用printf()函数
printf("$%01.2f", $money);
答案 4 :(得分:1)
请注意,在PHP 7.4中,money_format()函数为deprecated。可以用intl NumberFormatter功能代替它,只需确保启用php-intl扩展即可。这是少量的工作,值得付出,因为您获得了很多可定制性。
$f = new NumberFormatter("en", NumberFormatter::CURRENCY);
$f->formatCurrency(12345, "USD"); // Outputs "$12,345.00"
Darryl Hein提到了仍适用于7.4的快速方法:
'$' . number_format($money, 2);
答案 5 :(得分:0)
在php.ini中添加它(如果缺少):
#windows
extension=php_intl.dll
#linux
extension=php_intl.so
然后执行以下操作:
$amount = 123.456;
// for Canadian Dollars
$currency = 'CAD';
// for Canadian English
$locale = 'en_CA';
$fmt = new \NumberFormatter( $locale, \NumberFormatter::CURRENCY );
echo $fmt->formatCurrency($amount, $currency);
答案 6 :(得分:0)
/* Just Do the following, */
echo money_format("%(#10n","123.45"); //Output $ 123.45
/* If Negative Number -123.45 */
echo money_format("%(#10n","-123.45"); //Output ($ 123.45)