我有一个我在0 -100之间计算的值, 它通常是一个漂浮数字,如5.87876,所以我使用 number_format ,如:
$format_number = number_format($number, 2, '.', '');
问题是,即使计算数字是整数,如:100
它的节目100.00
但我希望将其显示为:100
实现这一目标的优雅方式是什么?
(我的意思是没有别的,如果..)
答案 0 :(得分:4)
这是我所知道的最短方式。
$digits = (is_numeric($number) && intval($number) == $number ? 0 : 2);
$format_number = number_format($number, $digits, '.', '');
is_numeric
和intval
技巧取自this SO question
答案 1 :(得分:2)
所以你试图在点之后得到两位小数的精度,但是在整数上抑制.00?我用的是sprintf:
$numbers = Array(3.141, 5.87876, 10.9999, 100);
foreach( $numbers as $n ) {
$string = sprintf("%6.2f\n", $n);
$string = str_replace(".00", " ", $string);
echo $string;
}
输出
3.14
5.88
11
100