zoukankan      html  css  js  c++  java
  • c++中float精度问题

    float存储格式为:
    S              E          M
    1位符号位 8位指数  23位尾数

    转成数值即为:V=(-1)^S * 1.M * 2^(E-127)

    对于16.5转成二进制为00010000.1==>1.00001*2^4,
    那么在内存的表示为:
    符号位    指数4+127 = 131      尾数
    0          10000011               00001 000000000000000000

    在转换过程中由于需要往右移位, 可见对于float数整数部分越大,小数部分的精度就越低
    对float数来说有效数字约为7位(2^23约等于10^7),所以整数部分占的位数越多,小数部分
    的精度就越低,当整数部分超过9999999后小数部分已经完全无精度了

  • 相关阅读:
    测光
    闪光灯
    快门
    光圈
    白加黑减
    曝光补偿
    取景雷区
    着眼点
    Web中的无状态含义
    图计算模型[转]
  • 原文地址:https://www.cnblogs.com/corefans/p/1354902.html
Copyright © 2011-2022 走看看