printf 加倍,总长度固定
printf doubles with fixed overall length
我想将 printf 加倍,以便总长度始终相同,如果数字太长则四舍五入。
例如,总长度为 7:
double a = 1.23456789;
double b = 12.3456789;
double c = 123.456789;
printf("a: %f\n", a);
printf("b: %f\n", b);
printf("c: %f\n", c);
将打印:
a: 1.23457
b: 12.3457
c: 123.457
有没有简单的方法可以做到这一点?
printf("a: %.6g\nb: %.6g\nc: %.6g\n", a, b, c);
是的,有。有关 printf
转换说明符,请参阅 specifications。使用 #
到 select 替代形式 来保留尾随零。使用 g
获得具有固定总位数的表示。 .6
指定确切的位数。
printf("a: %#.6g\n", a);
printf("b: %#.6g\n", b);
printf("c: %#.6g\n", c);
6 位精度恰好是默认值,所以这也适用
printf("a: %#g\n", a);
我想将 printf 加倍,以便总长度始终相同,如果数字太长则四舍五入。
例如,总长度为 7:
double a = 1.23456789;
double b = 12.3456789;
double c = 123.456789;
printf("a: %f\n", a);
printf("b: %f\n", b);
printf("c: %f\n", c);
将打印:
a: 1.23457
b: 12.3457
c: 123.457
有没有简单的方法可以做到这一点?
printf("a: %.6g\nb: %.6g\nc: %.6g\n", a, b, c);
是的,有。有关 printf
转换说明符,请参阅 specifications。使用 #
到 select 替代形式 来保留尾随零。使用 g
获得具有固定总位数的表示。 .6
指定确切的位数。
printf("a: %#.6g\n", a);
printf("b: %#.6g\n", b);
printf("c: %#.6g\n", c);
6 位精度恰好是默认值,所以这也适用
printf("a: %#g\n", a);