[求助]关于float的问题
main(){ float x;
double y;
x=123456.7777; y=123456.7777;
printf("x=%f,y=%f\n",x,y);
}
在TC里运行结果为x=123456.781250,y=123456.777700
为什么不是x=123456.700000
在TC里float有效数字不是7位吗?
搜索更多相关的解决方案:
float
----------------解决方案--------------------------------------------------------
在TC里运行结果为x=123456.781250?
会是这个结果?
有效位数是六位。
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------
这和浮点数的存储和表示方式有关,你不能要求计算机总能得到你想要的精确度!!!
浮点数占4个字节,其中1位表示正负,8位表示指数,23位表示尾数。
在进行浮点数比较时不要写if(a==0.001)之类的,这样容易出错误!!!
----------------解决方案--------------------------------------------------------
double ,双精度浮点数
----------------解决方案--------------------------------------------------------
溢出了
----------------解决方案--------------------------------------------------------
在TC里运行结果为x=123456.781250,y=123456.777700
为什么不是x=123456.700000
在TC里float有效数字不是7位吗?
它的结果的确是七位啊
123456.7就是七位有效数字啊,取前七位啊
后面的81250是随机的啊
----------------解决方案--------------------------------------------------------