比如这一段代码
#include<stdio.h>
int main()
{
float a;
float b;
a=123456.789e5;//12345678900
b=a+20;//1234567820
printf("%f",b);//单精点只接受7位有效数字
return 0;
}
//输出结果 为 12345678848.000000
按理说a只能有7位那取值应该是123456700000, 输出应该是12345600020,但是好像也不对
但是为什么程序输出是12345678848.000000呢?求解答,纯自学,见谅,多谢多谢.
你类型设置为double就正常了。数据溢出