在浮点变量

时间:2016-03-16 14:04:44

标签: java vb.net floating-point

首先我不会问为什么我的乘法被破坏了...因为它不是,我知道浮点存储信息是怎么回事,以及为什么0.69 * 10 = 6.8999999999999995

但是我不明白为什么如果IEEE 754浮点系统无法正确表示,我可以将值6.9存储在我的双变量中?

1 个答案:

答案 0 :(得分:0)

因为0.69不是0.69,实际上

0.689999999999999946709294817992486059665679931640625

当乘以10时

6.89999999999999946709294817992486059665679931640625

可以完全表示为浮点数,并打印为6.8999999999999995

另一方面,

6.9实际上是此后的下一个浮点数:

6.9000000000000003552713678800500929355621337890625

(如果你仔细观察,你会发现它接近6.9)。