【发布时间】: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.00 或100.7046,我们将分别得到100.00 和100.70。
使用“g”作为格式也不能解决问题。有什么想法吗?
【问题讨论】:
-
@EricPostpischil 谢谢,但是您建议的链接建议使用“g”作为格式,这实际上并不能解决我的问题...
-
@Pensierinmusica:不过,你问的问题和其他人一样。由于第一个答案的第一段不合适,请继续阅读。
-
@SteveJessop 仔细阅读它实际上不是同一个问题。您所指的链接接受任意数量的相关小数,而在我的示例中,我们将其限制为 2。
-
@Pensierinmusica:答案是一样的:打印到缓冲区,然后编辑。
-
有时候,在做电脑编程的时候,还得给电脑编程。
标签: c casting floating-point printf