【发布时间】:2019-09-29 21:56:26
【问题描述】:
我在 C 中运行一个简单的计算,有时结果正好是 0。然后我使用类似 printf("%0.4g", result) 的东西打印这些结果。如果结果不是 0,它会做我想做的事,例如,输出可能是1.796e+04。但是,如果结果正好是 0(通常是这样),则输出将是 0。
我的问题是,我该怎么做才能打印带有 4 位小数的 0.0000,即使那里的数字可能正好是 0?
【问题讨论】:
-
是否可以接受带有“0”的 5 个空格? IE。
" 0"(cmets合并空格,所以写不出来) -
当它是 0 你想显示 0.000 吗?
-
当结果为1.0E-6时,你看到了什么(希望看到)? IIRC,
%g默认去除尾随零。但是 POSIX 说 最后,除非使用 '#' 标志,否则应从结果的小数部分中删除任何尾随零,如果没有剩余小数部分,则应删除小数点字符。 所以"%#0.4g"应该可以完成这项工作。 -
说明符
%0.4g指定具有 3 个小数位的数字,即。1.746e+04。要使0.0000有 4 个小数位,您需要使用.5g
标签: c printf double decimal stdio