Real vs. Floating Point vs. Money

前端 未结 4 1140
走了就别回头了
走了就别回头了 2020-11-27 06:30

Why when I save a value of say 40.54 in SQL Server to a column of type Real does it return to me a value that is more like 40.53999878999 instead of 40.54? I\'ve seen this

4条回答
  •  一向
    一向 (楼主)
    2020-11-27 07:13

    To add a clarification, a floating point numbers stored in a computer behaves as described by other posts here, because as described, it is stored in binary format. This means that unless it's value (both the mantissa and exponent components of the value) are powers of two, and cannot be represented exactly.

    Some systems, on the other hand store fractional numbers in decimal (SQL Server Decimal, and Numeric data types, and Oracle Number datatype for example,) and then their internal representation is, therefore, exact for any number that is a power of 10. But then numbers that are not powers of 10 cannot be represented exactly.

提交回复
热议问题