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

nic*_*ckf 55 php formatting currency

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

eg:
123.45    => '$123.45'
123.456   => '$123.46'
123       => '$123.00'
.13       => '$0.13'
.1        => '$0.10'
0         => '$0.00'
Run Code Online (Sandbox Code Playgroud)

Jer*_*ten 76

PHP也有money_format().

这是一个例子:

echo money_format('$%i', 3.4); // echos '$3.40'
Run Code Online (Sandbox Code Playgroud)

这个函数实际上有很多选项,请转到我链接到的文档以查看它们.

注意:money_format在Windows中未定义.

  • 来自doco:注意:函数money_format()仅在系统具有strfmon功能时定义.例如,Windows没有,因此在Windows中未定义money_format(). (11认同)
  • 找到答案[这里](http://stackoverflow.com/a/9761657/2426945).只需做_money_format('%.2n',3.4); _ (3认同)
  • 该功能现在已弃用吗?当我使用它时,它现在是“未定义”。 (2认同)

Dar*_*ein 76

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

'$' . number_format($money, 2);
Run Code Online (Sandbox Code Playgroud)

number_format()

  • 没有数千个分隔符就可以做到:''$'.number_format($ money,2,'.','');` (11认同)
  • 请注意,这将在每个三位数组后添加逗号(或您的语言环境中的等效语句).这可能是期望的,但如果你没想到它可能会非常混乱. (3认同)
  • 这不适用于负数,我们使用-$ 69.42而不是$ -69.42 (2认同)

saa*_*adk 13

我试过 money_format()但它根本不适合我.然后我尝试了以下一个.它对我来说很完美.希望它也会以正确的方式为你工作.. :)

你应该使用这个

number_format($money, 2,'.', ',')
Run Code Online (Sandbox Code Playgroud)

它将以货币格式显示货币数量,最多2位小数.


Jon*_*Jon 9

请注意,在 PHP 7.4 中,money_format() 函数已被弃用。它可以被 intl NumberFormatter 功能替换,只需确保启用 php-intl 扩展即可。这只是少量的努力,但值得,因为您可以获得很多可定制性。

$f = new NumberFormatter("en", NumberFormatter::CURRENCY);
$f->formatCurrency(12345, "USD"); // Outputs "$12,345.00"
Run Code Online (Sandbox Code Playgroud)

Darryl Hein提到了仍然适用于 7.4 的快速方法:

'$' . number_format($money, 2);
Run Code Online (Sandbox Code Playgroud)

  • 我的 PHP 缺少“Intl”扩展名,所以这让我走上了正轨! (2认同)

nic*_*ckf 6

在PHP和C++中,您可以使用printf()函数

printf("$%01.2f", $money);
Run Code Online (Sandbox Code Playgroud)