1.15 - 1.13 = 0.01999998或0.02?

时间:2011-07-30 08:52:08

标签: vb.net precision

我在同一台电脑上的两个不同项目中有以下代码:

Dim MySingle1 As Single = 1.15
Dim MySingle2 As Single = 1.13
Dim MyResult As Single = MySingle1 - MySingle2

但最有趣的是,在一个项目MyResult中为0.02,在另一个项目MyResult中为0.01999998。

我没能解决这个问题。请给我建议。

提前感谢你。

此致 SKPaul

2 个答案:

答案 0 :(得分:3)

What Every Computer Scientist Should Know About Floating-Point Arithmetic

为了简化故事,计算机无法准确表示大多数浮点数。他们研究近似值。

答案 1 :(得分:0)

浮点内部使用base-2表示。对于单精度,即24位,大致相当于〜(6,7)精度的十进制数字,这就是你得到的(你的第七位是不精确的)。