【问题标题】:Print a float in C with two decimals but no trailing zeroes [duplicate]在C中打印一个带有两位小数但没有尾随零的浮点数[重复]
【发布时间】:2013-03-05 15:36:25
【问题描述】:

在 C 中是否有一种简单、快速的方法来转换或打印浮点数,以使输出具有两位小数(不是更多)的精度,但如果有任何尾随零,它们会被删除?

例子:

100.456 -> 100.46
100.32 -> 100.32
100.7046 -> 100.7
100.00 -> 100

假设我们有float x;,我们执行printf(%.2f, x)。 这将满足第一个要求,因为任何浮点数都将以 2 位小数的最大精度打印。但问题是对于x=100.00100.7046,我们将分别得到100.00100.70

使用“g”作为格式也不能解决问题。有什么想法吗?

【问题讨论】:

  • @EricPostpischil 谢谢,但是您建议的链接建议使用“g”作为格式,这实际上并不能解决我的问题...
  • @Pensierinmusica:不过,你问的问题和其他人一样。由于第一个答案的第一段不合适,请继续阅读。
  • @SteveJessop 仔细阅读它实际上不是同一个问题。您所指的链接接受任意数量的相关小数,而在我的示例中,我们将其限制为 2。
  • @Pensierinmusica:答案是一样的:打印到缓冲区,然后编辑。
  • 有时候,在做电脑编程的时候,还得给电脑编程。

标签: c casting floating-point printf


【解决方案1】:

printf ("%.2f", 100.456); 应该给你 100.46

【讨论】:

  • 100.7056 -> 100.7100.00 -> 100 怎么样。
  • 我以为您希望保留尾随零,而不是删除它们...This 几乎是完全相同的问题,并且有几个答案可能对您有所帮助...
  • 谢谢,但它没有回答问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-27
  • 2022-01-18
  • 2020-04-17
  • 1970-01-01
相关资源
最近更新 更多