float 的精度为啥是7,不要用2的23次方来描述,这种描述我觉得无法理解

新手上路,请多包涵

好难理解浮点数精度,网上解释总是2^23=....然会7位,但是23bit 存的尾数从二进制转换为10进制,精度为啥为7,即使为7,还有指数位的约束。 float最大数为3.4*10^38,但是精度只有7位,那这么大的数本身不是超过7位吗?如何理解这个精度到底指啥

阅读 2.8k
2 个回答

精度可以理解为10进制下的有效数字。也就是说用单精度 float 表示的数不管多大,只有7位是精确的。指数不能帮助提高精度。比如 1.23456789 * 10^38,用 float 只能保存成 1.234567 * 10^38。

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