
C语言浮点数相加单、双精度问题
#include<stdio.h>main(){floatx,sx;doubley,sy;x=11111.11;y=222222.222;sy=x+y;sx=x+y;pr...
#include <stdio.h>
main()
{
float x,sx;
double y,sy;
x=11111.11;
y=222222.222;
sy=x+y;
sx=x+y;
printf("%f\n%f\n",sx,sy);
}
x和y相加的结果为什么是233333.332352 后面的几位小数是怎么来的 展开
main()
{
float x,sx;
double y,sy;
x=11111.11;
y=222222.222;
sy=x+y;
sx=x+y;
printf("%f\n%f\n",sx,sy);
}
x和y相加的结果为什么是233333.332352 后面的几位小数是怎么来的 展开
1个回答
展开全部
十进制要转2进制运算,再转回十进制输出,所以有截断误差。
float 有效数字 精度 为 7 位。
sy 是 double, 要用格式 %lf
float 有效数字 精度 为 7 位。
sy 是 double, 要用格式 %lf
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询