##前景提要: 项目中需要实现四舍五入并保留两位小数
1. 首先考虑使用round函数
php > echo round(1.50,2);
1.5
php > echo round(1.5,2);
1.5
- round函数在末尾为0时会自动省略,并无法补全
2. 试试sprintf
php > echo sprintf("%.2f", 1.555);
1.55
- 出现了一个神奇的问题。在网上搜罗了一圈看到解答
https://www.zhihu.com/question/274350404/answer/375082728
php > printf('%.53f',1.555);
1.55499999999999993782751062099123373627662658691406250
- 将1.555的全部53位小数显示出来发现1.555其实是1.55499…第三位其实是4并不是5 所以直接被舍去了。
3.解决方案:将两个方法结合
php > echo sprintf("%.2f", round(1.555,2));
1.56
php > echo sprintf("%.2f", round(1.5,2));
1.50