printf() 中 %f 和 %F 有什么区别?

4
我注意到 printf() 有格式符号 %F%f
这两者有什么区别呢?上面的链接说 %F 会给出 "十进制浮点数,大写"。
我不明白什么是大写浮点数。
谢谢!

5
1.0e+71.0E+7 的意思是相同的,它们都表示科学计数法下的数字1乘以10的7次方。其中小写字母"e"和大写字母"E"在科学计数法中都可以用来表示幂运算符号“乘以10的几次方”。 - Eljay
3
%f%F不会使用指数表示法,对吗? - HolyBlackCat
@HolyBlackCat • 我改正了我的说法。我意识到很长时间以来我都没有使用过 printf - Eljay
2个回答

10
根据C 2018标准,第7.21.6.1条款,第8段:
F转换说明符将产生INF、INFINITY或NAN,而不是分别产生inf、infinity或nan。

9
根据wikipedia的说法:

f和F只有在打印无限大或NaN的字符串时有所不同(f为inf、infinity和nan;F为INF、INFINITY和NAN)

示例:
double result = 1.0/0.0;
printf("%f\n%F\n",result,result);
//inf
//INF

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接