2

如果浮点数的小数不为零,我想显示一个小数。

最优雅的方法是什么?

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

4 回答 4

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

这应该完成任务

于 2013-04-16T12:06:54.223 回答
3

按以下方式使用。

$x = "99.44";  // example value
$y =  number_format((float)$x, 1, '.', '');
echo str_replace(".0","",$y);
于 2013-04-16T12:10:21.263 回答
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
于 2013-04-16T12:10:08.173 回答
0

我更喜欢这种方式:

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

于 2013-04-16T12:12:42.373 回答