使用sprintf打印浮点数值

5

现在我有以下代码:

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

它的输出结果是:

4.00

如何只在小数点后面有数字时显示前导零?

例如:

  • 4.00 应该显示为 4
  • 4.20 应该显示为 4.2
  • 4.02 应该显示为 4.02 :)

2
一个float本身并没有精度(例如:32位IEEE-754浮点数有23位尾数),它取决于你自己来确定。另外请注意,4.004.04代表不同的意思。请参考:http://en.wikipedia.org/wiki/Significant_figures - NullUserException
为什么你在标题中谈论sprintf,而在正文中使用printf? - lc2817
我提供的原始代码是基于在数字前添加零(正如您上面所述)-- 但似乎您实际上想要去除数字后面的零。 - bobbymcr
1个回答

11
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 输出值是否可行

演示


2
虽然这是OP所要求的,但我真的很困扰于看到对有效数字概念的完全漠视。4和4.00并不相同。啊啊啊啊啊啊! - NullUserException

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接