我想在首页显示价格。但所需数量的格式是,
如果我使用以下代码
echo number_format ($price,2,'.',',');
但是通过这种方式,结果以这种方式显示 输入价格:10000显示:10,000.00
请帮我解决这个问题
答案 0 :(得分:3)
PHP中有一个名为money_format()
的函数。
答案 1 :(得分:1)
当然,从清晰度和一致性的角度来看,小数点后面的2位数字更有意义,特别是在显示价格时。
@barryhunter提出了一个有效的观点,以下内容无效。
echo rtrim(number_format($price,2,'.',','),'0.');
但是,这样做:
trim(trim(number_format($price,2,'.',','),'0'),'.');
查找
<?php
$a=array('10000.00','10000.10','10000.01');
foreach ($a as $price)
{
echo $price.' - '.rtrim(rtrim(number_format($price,2,'.',','),'0'),'.')."\n";
}
?>
$> php -f t.php
10000.00 - 10,000
10000.10 - 10,000.1
10000.01 - 10,000.01
答案 2 :(得分:1)
您已将小数点数设置为2,这就是您拥有10,000.00的原因。尝试以这种方式使用:
echo number_format ($price,1,'.',',');
如果您正在处理货币价值,最好使用money_format。
答案 3 :(得分:0)
就我个人而言
echo number_format($price,floor($price)==$price?0:2,'.',',');
显示10,000.1的价格对我来说很奇怪。
但如果你真的必须
$bits = explode('.',$price);
echo number_format($price,strlen($bits[1]),'.',',');
(编辑)在回复评论时,它对我有用......
<?php
$a=array(10000.00,10000.10,10000.01);
foreach ($a as $price)
{
$bits = explode('.',$price);
echo $price.' - '.number_format($price,strlen($bits[1]),'.',',')."\n";
}
?>
$ php t.php
10000 - 10,000
10000.1 - 10,000.1
10000.01 - 10,000.01