number_format仅在不为零的情况下

时间:2013-04-16 12:03:16

标签: php number-formatting

如果它具有非零小数,我想显示一个浮点数的一个小数。

最优雅的方法是什么?

100.00 -> 100
99.45 -> 99.5
99.44 -> 99.4
11.30 -> 11.3
2.00 -> 2
11.02 -> 11
13.05 -> 13.1

4 个答案:

答案 0 :(得分:3)

ini_set("precision", 8); /* low enough; eventually if needed */
var_dump((string)round($float, 1));

这应该完成任务

答案 1 :(得分:3)

以下列方式使用。

$x = "99.44";  // example value
$y =  number_format((float)$x, 1, '.', '');
echo str_replace(".0","",$y);

答案 2 :(得分:0)

$rounded = (!is_int($number)) ? round($number, 1) : round($number);

我已经使用您的样本数据测试了上述内容,输出如下:

100.00 > 100
99.45 > 99.5
99.44 > 99.4
11.30 > 11.3
2.00 > 2
11.02 > 11
13.05 > 13

答案 3 :(得分:0)

我更喜欢这种方式:

$num = 100.1;
echo (floor($num) == $num) ? $num : number_format($num,1);