PHP 使用 number_format 并正确显示小数点

Posted

技术标签:

【中文标题】PHP 使用 number_format 并正确显示小数点【英文标题】:PHP using number_format and displaying the decimal point correctly 【发布时间】:2014-10-29 21:53:33 【问题描述】:

我的号码是 495,简单明了。

我正在尝试格式化这个数字,让它显示为 $4.95

我所做的是number_format($number, 2, '.', '')

但输出495.00

我知道这不可能这么难。有人熟悉number_format吗?

我只需要它从右边添加一个十进制的两个数字,以便始终显示美分。前任。 4.95、12.58、23.39……你懂的。

谢谢。

【问题讨论】:

哎呀,我的错。把问题读错了,如果我可以删除这个我会的! 另外,您应该注意该实例中的最后两个参数是不成熟的(这些是默认值) 【参考方案1】:

如果您使用整数而不是浮点数,您首先必须除以 100。

$number = 495;
echo number_format($number/100, 2, '.', '')

【讨论】:

天哪!我不敢相信。我的大脑今天完成了。谢谢 jboneca @ValleyDigital 确定,老兄!【参考方案2】:

假设您的数字都是整数,您可以执行以下操作:

$mynum = 495;

function formatMyNum($num) 
    return $num/100;

【讨论】:

当你可以将 $number 除以 100 时,为什么要为所有内容编写函数? 我假设您希望重用逻辑。我猜是个人喜好。追随你的开发人员不知道你为什么要除以 100,所以函数可以是自文档【参考方案3】:

数字格式仅显示 floats,使用 N 个小数位和您选择的小数/千位分隔符。

如果您将4.95 传递给它,它会显示很好,因此只需将您的$number 除以100,然后再将其传递给函数。

echo number_format($number/100, 2, '.', '');

【讨论】:

以上是关于PHP 使用 number_format 并正确显示小数点的主要内容,如果未能解决你的问题,请参考以下文章

PHP number_format 返回不正确的数字

php number_format() 的问题

PHP number_format() 十进制 .99 变为 .00

php 的 number_format使用

PHP字符串函数 number_format(以千位分隔符方式格式化一个数字)

使用 PHP number_format() 得到一个奇怪的除法错误