【问题标题】:Printing float values with sprintf使用 sprintf 打印浮点值
【发布时间】:2012-01-02 13:08:39
【问题描述】:

现在我有:

printf('Rating: %.2F', $rating);

打印如下:

4.00

如何才能显示前导零,只有在它后面有要显示的内容?

例如:

  • 4.00 应该是 4
  • 4.20 应该是 4.2
  • 4.02 应该是 4.02 :)

【问题讨论】:

  • A float 本身并没有真正的精度(例如:32 位 IEEE-754 浮点数有 23 位尾数),由您来确定它是什么。另请注意,4.004.04 表示不同的含义。见:en.wikipedia.org/wiki/Significant_figures
  • 为什么标题里讲了sprintf,而你用的是printf?
  • 我给出的原件是基于 leading 零的格式(如上所述)——但看起来你实际上想要抑制 trailing i> 零。

标签: php floating-point numbers printf


【解决方案1】:
printf("Rating: %g\n", 4.00);
printf("Rating: %g\n", 4.20);
printf("Rating: %g\n", 4.02);

打印

Rating: 4
Rating: 4.2
Rating: 4.02

所以将打印没有printf的值

demo

【讨论】:

  • 虽然这是 OP 所要求的,但看到完全无视有效数字的概念真的让我很困扰。 4 和 4.00 不一样。啊啊啊啊啊
猜你喜欢
  • 1970-01-01
  • 2012-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多