如果数字不是浮点数/小数,有没有办法让number_format()
省略小数位?
例如,我想要以下输入/输出组合:
50.8 => 50.8
50.23 => 50.23
50.0 => 50
50.00 => 50
50 => 50
有没有办法用标准的number_format()
做到这一点?
您可以将0
添加到格式化的字符串中。它将删除尾随零。
echo number_format(3.0, 1, ".", "") + 0; // 3
更好的解决方案:上述解决方案无法适用于特定的区域设置。因此,在这种情况下,您只需键入强制转换为float
数据类型。注意:在向float
进行类型转换后,您可能会失去精度,数字越大,截断数字的可能性就越大。
echo (float) 3.0; // 3
终极解决方案:唯一安全的方法是使用正则表达式:
echo preg_replace("/\.?0+$/", "", 3.0); // 3
echo preg_replace("/\d+\.?\d*(\.?0+)/", "", 3.0); // 3