标题:[求助]关于float的问题
只看楼主
loach
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2005-3-1
 问题点数:0 回复次数:6 
[求助]关于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 
2005-03-16 10:32
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
得分:0 
在TC里运行结果为x=123456.781250?

会是这个结果?

有效位数是六位。

2005-03-16 16:39
地瓜
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2005-3-14
得分:0 
2005-03-17 09:54
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
得分:0 
这和浮点数的存储和表示方式有关,你不能要求计算机总能得到你想要的精确度!!!
浮点数占4个字节,其中1位表示正负,8位表示指数,23位表示尾数。
在进行浮点数比较时不要写if(a==0.001)之类的,这样容易出错误!!!

差点把你忘了...
2005-03-17 10:39
地瓜
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2005-3-14
得分:0 
double ,双精度浮点数
2005-03-17 10:52
xyj
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2005-3-14
得分:0 
溢出了

岂能尽如人意,但求无愧于心!
2005-03-17 17:55
flyicefire
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2005-3-17
得分:0 

在TC里运行结果为x=123456.781250,y=123456.777700
为什么不是x=123456.700000
在TC里float有效数字不是7位吗?

它的结果的确是七位啊

123456.7就是七位有效数字啊,取前七位啊

后面的81250是随机的啊
2005-03-17 21:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-13395-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.082043 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved