仅显示一个小数位或不显示浮点数

时间:2016-10-07 16:45:54

标签: php

我知道number_format(..)的行为如下:

number_format(2.5, 1) // returns 2.5
number_format(2.0, 1) // returns 2.0 <-- needs to be just 2

问题是,我根本不想显示.0。如何正确格式化浮点数来实现这个目标?

2 个答案:

答案 0 :(得分:3)

一种选择是使用round代替number_format

echo round(2.0, 1); // 2
echo round(2.5, 1); // 2.5
echo round(2.555555, 1); // 2.6
echo round(2.501, 1); // 2.5
echo round(2.1050, 1); // 2.1

另一种选择是在使用number_format后将你的号码转换为浮点数,这将消除小数点后的任何尾随零。

echo (float) number_format(2.0, 1); // 2
echo (float) number_format(2.5, 1); // 2.5
echo (float) number_format(2.555555, 1); // 2.6
echo (float) number_format(2.501, 1); // 2.5
echo (float) number_format(2.1050, 1); // 2.1

两者都会为您提供一个小数位的最大。我认为round是更好的选择。

答案 1 :(得分:1)

也许使用is_float?像这样number_format(2.0, is_float(2.0) ? 1 : 0)