当前位置: 代码迷 >> C语言 >> [求助]关于float的问题
  详细解决方案

[求助]关于float的问题

热度:434   发布时间:2005-03-16 10:32:00.0
[求助]关于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是随机的啊
----------------解决方案--------------------------------------------------------
  相关解决方案