c - 停止 printf 填充指数

标签 c

当我使用这个时:

printf("%e", 2000.0);

我得到输出2.000000e+003这是正确的,但非常丑陋。然后我尝试这样:

printf("%.1e", 2000.0);

输出 2.0e+003这要好得多。问题是如何删除指数中的 2 个填充零,以便输出为 2.0e+3 。有具体的printf还是我必须手动编写一个函数来分析 float 并按照我想要的方式打印它(我不想这样做)?

最佳答案

printf 的标准 C 功能不提供任何控制指数位数的方法。如果您想要不同的格式,则必须编写自己的代码或从其他地方获取代码。

(%a 转换确实仅根据需要使用指数中尽可能多的数字,但它以十六进制打印该值。)

关于c - 停止 printf 填充指数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57942829/

相关文章:

c - select 未指示 pthread_create 启动的函数中数据到达

c - 将值放入结构数组中?

c - 我的 "exit(0)"函数将 ": Success"打印到标准输出。我怎样才能阻止这个?

C 输出格式问题

c - 在函数中初始化数组

c - 如何读取 C 中以空格分隔的值?

c - 基本线性代数算法(MATLAB 和 C)

c - 没有合并排序的奇怪输出。条目不是 2 的幂。- c

编码 getline() 实现 - Valgrind 错误

c - 有没有办法在包含同时具有数据和时间的列的数据文件中分隔列