gpt4 book ai didi

c - 如果仅尾随 0,则使用 printf 格式化没有小数位的 float

转载 作者:太空狗 更新时间:2023-10-29 16:20:36 25 4
gpt4 key购买 nike

是否可以使用 printf 将 C 中的 float 格式化为仅显示最多 2 位小数(如果与 0 不同)?

例如:

12 => 12

12.1 => 12.1

12.12 => 12.12

我尝试使用:

float f = 12;
printf("%.2f", f)

但是我明白了

12 => 12.00

12.1 => 12.10

12.12 => 12.12

最佳答案

您可以使用%g 格式说明符:

#include <stdio.h>

int main() {
float f1 = 12;
float f2 = 12.1;
float f3 = 12.12;
float f4 = 12.1234;
printf("%g\n", f1);
printf("%g\n", f2);
printf("%g\n", f3);
printf("%g\n", f4);
return 0;
}

结果:

1212.112.1212.1234

请注意,与 f 格式说明符不同,如果您在 g 之前指定一个数字,它指的是整个数字的长度 (不是 f 中的小数位数)。

关于c - 如果仅尾随 0,则使用 printf 格式化没有小数位的 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9628645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com