通常来说,我们对保留两位小数有如下三种方法:
1 2 3 4 5 6 7 8 9 10 11 12 |
$num = 10.4567; //第一种:利用round()对浮点数进行四舍五入 echo round($num,2); //10.46 //第二种:利用sprintf格式化字符串 $format_num = sprintf("%.2f",$num); echo $format_num; //10.46 //第三种:利用千位分组来格式化数字的函数number_format() echo number_format($num, 2); //10.46 //或者如下 echo number_format($num, 2, '.', ''); //10/46 |
区别
第三种方法对于数据的二次运算就不是那么友好,所以我们将主要目标放在第一和第二种方法上。
第一种方法会对数据进行四舍五入,也就是上面代码形容的那样,但有个问题。
如果是10.1,他就只能显示10.1,并不会帮我们补全成10.10.
第二种方法不会对数据进行四舍五入,是直接切割数据,比如10.649,就会变成10.64。
结论
上面的三种方法看起来都没办法实现四舍五入的前提下自动补零,其实不然,换个思路即可。
我们可以先四舍五入,再补零,不就可以了吗?如下:
1 2 3 |
$num =1.785; echo sprintf("%.2f", $num); //结果1.78 |
搞定了不是吗
原创文章,作者:蓝洛水深,如若转载,请注明出处:https://blog.lanluo.cn/10656