我知道number_format(..)
的行为如下:
number_format(2.5, 1) // returns 2.5
number_format(2.0, 1) // returns 2.0 <-- needs to be just 2
问题是,我根本不想显示.0
。如何正确格式化浮点数来实现这个目标?
答案 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)