我想按照以下规则打印出一个十进制数:
- 小数点左侧应始终有两位数字。
- 小数点右侧应始终有三位数字。
因此,以下是我希望如何显示数字的一些示例:
- 12.345
- 02.310
- 07,499
- 42.300
认识到我可以使用模算术来分隔整数和小数部分,然后分别格式化它们,但这似乎很混乱。我希望有一个使用 sprintf
的更简单的解决方案,尽管我似乎无法让它工作。
我已经尝试了以下方法(都不起作用):
printf('%02.3f', 2.31); // nope
printf('%5.3f', 2.31); // nadda
printf('%05.5f', 2.31); // no way
printf('%02d', 2.31); // obviously not
printf('%03f', 2.31); // not that either
难道就没有干净的方法吗?我可以不吃我的蛋糕(前导零)和吃它(同时固定十进制精度)吗?
这应该适合您:
echo sprintf("%06.3f", 2.31);
输出:
02.310