This question already has answers here:
Closed 4 years ago.
Avoid trailing zeroes in printf()
(12个答案)
我有两个双数ab
double a = 1.01, b = 1.2345678

然后printf("%.4f %.4f", a, b)将输出
1.0100  1.2345

但我想输出
1.01 1.2345

也就是说,删除无用的0。

最佳答案

%.4f将始终通过填充零打印高达4个小数点。
您可以删除%.4f并使用%g打印无填充零的精确值
克,克
双参数转换为f或e样式(或f或e表示G转换)。精度指定有效位数。如果缺少精度,则给出6位数字;如果精度为零,则将其视为1。如果转换后的指数小于-4或大于或等于精度,则使用样式e。从结果的小数部分中删除尾随的零;只有当小数点后跟至少一个数字时,才会显示小数点。

10-06 14:26