如何将一个数字转换为显示美元和分的字符串?
eg:
123.45 => '$123.45'
123.456 => '$123.46'
123 => '$123.00'
.13 => '$0.13'
.1 => '$0.10'
0 => '$0.00'
如何将一个数字转换为显示美元和分的字符串?
eg:
123.45 => '$123.45'
123.456 => '$123.46'
123 => '$123.00'
.13 => '$0.13'
.1 => '$0.10'
0 => '$0.00'
'$' . number_format($money, 2, '.', '');
。 - Justin AndersonPHP同样也有money_format()函数。
以下是一个示例:
echo money_format('$%i', 3.4); // echos '$3.40'
这个函数实际上有很多选项,请查看我链接的文档以了解它们。
注意:在Windows中未定义money_format。
更新:根据PHP手册:https://www.php.net/manual/en/function.money-format.php
警告:此函数 [money_format] 自PHP 7.4.0起已被弃用,极不建议使用此函数。
相反,请查看NumberFormatter::formatCurrency。
$number = "123.45";
$formatter = new NumberFormatter('en_US', NumberFormatter::CURRENCY);
return $formatter->formatCurrency($number, 'USD');
money_format('$%i', 3.4)
并不像大多数人希望的那样处理负数。 - Ryan我尝试了money_format()
,但它对我根本不起作用。然后我尝试了下面这个代码,它对我非常有效。希望对你也能有所帮助... :)
你应该使用这个代码
number_format($money, 2,'.', ',')
它将按照货币格式显示金钱数量,保留两位小数。
$f = new NumberFormatter("en", NumberFormatter::CURRENCY);
$f->formatCurrency(12345, "USD"); // Outputs "$12,345.00"
对于7.4版本依然有效的快速方法如Darryl Hein所述:
'$' . number_format($money, 2);
printf("$%01.2f", $money);
#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);
/* 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)