如何格式化数字以具有固定精度和固定数量的整数?

时间:2015-01-04 22:10:35

标签: php

我想用以下规则打印出十进制数字:

  • 小数点左侧应始终有两位数字。
  • 小数点右侧应始终有三位数字。

以下是我希望如何显示数字的一些示例:

  • 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

有没有干净的方法来做到这一点?我可以不吃蛋糕(前导零)并吃它(同时固定小数精度)?

1 个答案:

答案 0 :(得分:3)

这应该适合你:

echo sprintf("%06.3f", 2.31);

输出:

02.310