float的精度为什么是6-7位,详细的算法怎么来的?

AntiKill
  • 28

不要用2的23次方来描述,这种描述我觉得无法理解,谢谢

回复
阅读 3.9k
2 个回答

clipboard.png

如上图,float 和 double 的情况类似,都是用上面的方法来表示数据,第一位 sign 是表示正负的,中间几位表示指数,最后几位是个小数。表示的数就会是想下面这样:

clipboard.png

由于小数部分的位数是有限的,所以精度也就有限, 如果一个数超过了这个有限的精度,就会被四舍五入,也就损失了精度。你可以根据上面的图,算出来 double 的精度是 15 - 16 位,也可以找一下 float 的位分布,也就可以计算出 float 的精度。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏