4

PHP有没有办法显示2(或x)个小数位,但如果是整数则不显示.00?

我看过number_format,但它看起来并不完全适合这个..虽然我希望逗号每隔 3 个非小数位

34.00  => 34
34.7   => 34.70
12424.9=> 12,424.90

我的数字在数据库中存储为带有 2 个小数位的浮点数,所以我不一定需要它

4

1 回答 1

1

你可以做的是首先检查它是否是一个整数,通过使用floor()对其进行四舍五入并检查它是否等于完整的十进制版本。

echo (floor($cost) == $cost) ? floor($cost) : number_format($cost, 2, '.', ',');

或者

if (floor($cost) == $cost) {
    echo floor($cost);
}
else {
    echo number_format($cost, 2, '.', ',');
}

另一种选择是使用money_format()

echo (floor($cost) == $cost) ? floor($cost) : money_format('%.2n', $cost);

或者

if (floor($cost) == $cost) {
    echo floor($cost);
}
else {
    echo money_format('%.2n', $cost);
}
于 2012-06-04T18:14:37.527 回答