码迷,mamicode.com
首页 > 其他好文 > 详细

典型的检查对float精度理解的代码

时间:2014-11-28 00:51:57      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   ar   color   sp   div   art   问题   

  ...
1
vx = 0.0000007f * (rand()%9000-rand()%9000); 2 vy = 0.0005f * (rand()%9000); 3 vz = 0.0000001f * (rand()%9000); 4 pList_particle[i].m_velocity = Vector3(vx,vy,vz);
...

1,3行代码的vx和vz的值域可以通过数学方法计算,而0.0000007f和0.0000001f在运算时是否存在精度丢失从而影响到运算结果?

分析这种问题只能从float存储格式入手,先把两个浮点数化为二进制形式.网上有很多文章,推荐看:http://www.cnblogs.com/yewsky/articles/1864934.html的举例:0.2356存储格式

最起码的也得知道:float是32bit,1bit是float变量的符号位,8bit是float变量的二进制科学计数法的指数位(-127~128),23bit是float变量的二进制科学计数法的尾数位.

 

典型的检查对float精度理解的代码

标签:style   blog   http   ar   color   sp   div   art   问题   

原文地址:http://www.cnblogs.com/QQ122252656/p/4127468.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!