首先我不会问为什么我的乘法被破坏了...因为它不是,我知道浮点存储信息是怎么回事,以及为什么0.69 * 10 = 6.8999999999999995
但是我不明白为什么如果IEEE 754浮点系统无法正确表示,我可以将值6.9存储在我的双变量中?
答案 0 :(得分:0)
因为0.69
不是0.69,实际上
0.689999999999999946709294817992486059665679931640625
当乘以10时
6.89999999999999946709294817992486059665679931640625
可以完全表示为浮点数,并打印为6.8999999999999995
。
6.9
实际上是此后的下一个浮点数:
6.9000000000000003552713678800500929355621337890625
(如果你仔细观察,你会发现它接近6.9)。