我的数字看起来像这样:
175.0000
185.0000
195.0000
205.0000
13.0000
15.0000
但我的数字看起来像这样:
10.5000
7.5000
函数number_format()
没有删除它,因为如果我将其设置为保留1
小数位,则会将.0
保留为不是7.5
的数字}或10.5
。
是否有一个函数只有在小于0
时才显示小数点?
答案 0 :(得分:1)
您可以将数字与其整数值进行比较,以检查所需的小数位数:
$num = 7.0;
echo number_format($num, ($num == (int)$num) ? 0 : 1);
$num = 7.5;
echo number_format($num, ($num == (int)$num) ? 0 : 1);
输出:
7
7.5
较短版本仅当需要1位小数:
echo number_format($num, $num != (int)$num); // bool to int = 0 or 1.
另一种方法是使用rtrim()
两次:首先是zéros,第二种是dot:
echo rtrim(rtrim(number_format($num, 3), '0'),'.');
答案 1 :(得分:1)
我对php不是很有经验,但我发现了这个
echo 13.00 + 0; //gives you 13
echo '125.00' + 0; //gives you 125
echo 76.5 + 0; //gives you 76.5
答案 2 :(得分:1)
试试这个:
$arr=[175.0000, 185.0000, 195.0000, 205.0000, 13.0000, 15.0000, 10.5000, 7.5000 ];
foreach ($arr as $value) {
echo round($value,2)."\n";
}
这肯定会有效!
答案 3 :(得分:1)
试试这个
$a = Array("13.0000",
"15.0000",
"10.5000",
"7.5000");
$a = preg_replace('/0+$/', "", $a);
$a = preg_replace('/[.]$/', "", $a);
结果= 13,15,10.5,7.5
答案 4 :(得分:0)
这不是PHP,但它是通用算法。
有几种方法可以做到这一点:
if unformattedNumber % 1 == unformattedNumber:
formattedNumber = number_format(unformattedNumber)
else:
formattedNumber = number_format(unformattedNumber, 1)
或
formattedNumber = number_format(unformattedNumber, 1)
if formattedNumber[-1] == 0:
formattedNumber = number_format(formattedNumber)