C语言的一个小问题:float t=3.4e+37 那为什么printf("t=e%尀n",t)d的结果是t=3.400000e+037

2025-06-27 03:17:32
推荐回答(3个)
回答1:

这是以指数的形式输出的
3.400000 说明这是个float的数,他的默认精度决定了显示,当然你可以改变输出的精度
37其实就是e的37次方

精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。

#include "stdio.h"
#include "conio.h"
main()
{
printf("%.3d\n" , 5555);
getch();
printf("%.3f\n" , 0.88888);
getch();
printf("%.3f\n" , 0.9999);
getch();
printf("%.4s\n" , "this is a test!");
getch();
}

回答2:

那是默认的精度,如果希望只显示2位小数,可以用printf("t=%.2e\n",t)
只显示一位小数,可以用printf("t=%.1e\n",t)

回答3:

3.4e+37这是科学计数法呀,就是3.4乘以10的37次方