【发布时间】:2019-09-15 09:32:25
【问题描述】:
当我使用这个时:
printf("%e", 2000.0);
我得到了2.000000e+003 的输出,这是正确的,但非常难看。然后我尝试这样:
printf("%.1e", 2000.0);
哪个输出2.0e+003 要好得多。问题是如何删除指数中的 2 个填充零,以便输出为2.0e+3。是否有特定的 printf 说明符,或者我必须手动编写一个函数来分析浮点数并按照我想要的方式打印它(我不想这样做)?
【问题讨论】:
-
检查您的系统版本
man 3 printf。转换说明符e, E可以保存此信息。就我而言,exposant 将始终包含至少两位数字。 -
你确定第一个版本的输出是“2.000000e+003”吗?根据 C 标准,“指数始终包含至少两位数字,并且仅包含表示指数所需的更多数字。” (C 2018 7.21.6.1 8.)
标签: c