为什么浮点数不准确?
为什么有些数字在存储为浮点数时会失去准确性?
例如,十进制数9.2
可以精确地表示为两个十进制整数(92/10
)的比率,两者都可以用二进制(0b1011100/0b1010
)精确表示。但是,存储为浮点数的相同比率永远不会完全等于9.2
:
32-bit "single precision" float: 9.1999998092651367187564-bit "double precision" float: 9.199999999999999289457264239899814128875732421875
这样一个看似简单的数字如何在64位内存中表达“太大” ?
阿晨1998
Smart猫小萌
慕的地10843