汇编网首页登录博客注册
ppt的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  

[2008-02-26 11:48] 浮点数的存储结构

C语言中浮点数占4个字节共32个二进制位.
第1位为符号位.
第2位到第9位这1个字节表示指数位.
剩下的23位表示数值.
也就是说浮点数能表示的最大的完全精确的数值只有2的23次方=8388608这么大.
也就是说浮点数并不能完全精确表示一个超过7位十进制数的数值.
所以像这样的赋值就会有差错 float pi =  3.14159265358979;

像这样的循环可能就是死循环
float a = 1;
for(a=2;a!=1;a-=0.1);
应该改为这样
for(a=2;a-1<0.001;a-=0.1);
评论次数(2)  |  浏览次数(837)  |  类型(我想说的) |  收藏此文  | 

[  wdm   发表于  2008-02-26 17:09  ]

还是不明白,晕!

[  david   发表于  2008-02-26 17:28  ]

谢谢解答! 这可能就是所谓的精度问题. 我也理解不了.先放一放... :-)

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码