float的精度为什么是6-7位,详细的算法怎么来的?
不要用2的23次方来描述,这种描述我觉得无法理解,谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
不要用2的23次方来描述,这种描述我觉得无法理解,谢谢
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
http://blog.csdn.net/changlishuang/article/details/49913751
我自己通过这两个的整理做出的解释.
如上图,float 和 double 的情况类似,都是用上面的方法来表示数据,第一位 sign 是表示正负的,中间几位表示指数,最后几位是个小数。表示的数就会是想下面这样:
由于小数部分的位数是有限的,所以精度也就有限, 如果一个数超过了这个有限的精度,就会被四舍五入,也就损失了精度。你可以根据上面的图,算出来 double 的精度是 15 - 16 位,也可以找一下 float 的位分布,也就可以计算出 float 的精度。