Understanding floating point precision

前端 未结 3 1672
情话喂你
情话喂你 2021-01-06 17:45

Is it the case that:

  1. Representable floating point values are densest in the real number line near zero?
  2. Representable floating point values grow spars
相关标签:
3条回答
  • 2021-01-06 18:07

    The term precision usually refers to the number of significant digits (bits) in the represented value. So precision varies with the number of bits (or digits) in the mantissa of representation. Distance from the origin has no role.

    What you say is true about the density of floats on the real line. But in this case the right term is accuracy, not precision. FP numbers of small magnitude are far more accurate that larger ones. This contrasts with integers, which have uniform accuracy over their ranges.

    I highly recommend the paper What Every Computer Scientist Should Know About Floating Point Arithmetic, which covers this and much more.

    0 讨论(0)
  • 2021-01-06 18:07

    Floating point numbers are basically stored in scientific notation. As long as they are normalized, they consistently have the same number of significant figures, no matter where you are on the number line.

    If you consider density linearly, then the floating point numbers get exponentially more dense as you get closer to 0.

    As you get extremely closed to 0, and the exponent reaches its lowest point, the floating point numbers become denormalized. At this point, they have 1 extra significant figure and are thus more precise.

    0 讨论(0)
  • 2021-01-06 18:18

    Answers:

    1. Representable floating point values are densest in the real number line near zero? Yes
    2. Representable floating point values grow sparser (exponentially? Yes) as the number line moves away from zero? Yes
    3. If the above two are true, does that mean there is less precision farther from zero? Yes

    Overall question: Does precision in some way refer to or depend on the density of numbers you can represent (accurately)?

    See https://stackoverflow.com/a/24179424

    I also recommend What Every Computer Scientist Should Know About Floating Point Arithmetic

    0 讨论(0)
提交回复
热议问题