#include<stdio.h>
void main()
{
double x,y;
float a;
x=1111111111111.111111111;
y=2222222222222.222222222;
a=x+y;
printf("%f\n",a);//输出双精度数时的有效位数是16
}
#include<stdio.h>
void main()
{
double x,y;
float a;
x=11111111111111111.111111111;//小数点前17个1,小数点后9个1
y=22222222222222222.222222222;
a=x+y;
printf("%f\n",a);//输出双精度数时的有效位数是16
}//因为输出位数有限,果然输出有错误,如果不注意数据类型,我觉得很有可能会出错
|