我知道number_format(..)
的行为如下:
number_format(2.5, 1) // returns 2.5
number_format(2.0, 1) // returns 2.0 <-- needs to be just 2
问题是,我根本不想显示.0
。如何正确格式化浮动来实现这一点?
一种选择是使用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
是更好的选择。
也许使用is_float?像这样number_format(2.0, is_float(2.0) ? 1 : 0)