如何在PHP中将数字格式化为1美元

时间:2008-11-17 04:09:42

标签: php formatting currency

如何将数字转换为显示美元和美分的字符串?

eg:
123.45    => '$123.45'
123.456   => '$123.46'
123       => '$123.00'
.13       => '$0.13'
.1        => '$0.10'
0         => '$0.00'

7 个答案:

答案 0 :(得分:69)

PHP也有money_format()

以下是一个例子:

echo money_format('$%i', 3.4); // echos '$3.40'

此功能实际上有很多选项,请转到我链接到的文档以查看它们。

注意:在Windows中未定义money_format。

答案 1 :(得分:69)

如果你只是想要一些简单的东西:

'$' . number_format($money, 2);

number_format()

答案 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)