我在同一台电脑上的两个不同项目中有以下代码:
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
答案 0 :(得分:3)
What Every Computer Scientist Should Know About Floating-Point Arithmetic
为了简化故事,计算机无法准确表示大多数浮点数。他们研究近似值。
答案 1 :(得分:0)
浮点内部使用base-2表示。对于单精度,即24位,大致相当于〜(6,7)精度的十进制数字,这就是你得到的(你的第七位是不精确的)。