可能是重复问题:
C# (4):double minus double giving precision problems
86.25 - 86.24 = 0.01,通常情况下,我认为以上说法是正确的,对吗?
然而,如果我输入以下代码:
double a = 86.24;
double b = 86.25;
double c = b - a;
我发现c = 0.010000000000005116
为什么会这样?
可能是重复问题:
C# (4):double minus double giving precision problems
86.25 - 86.24 = 0.01,通常情况下,我认为以上说法是正确的,对吗?
然而,如果我输入以下代码:
double a = 86.24;
double b = 86.25;
double c = b - a;
type Compass_Direction is delta 0.1 0 .. 359.9
,其精度在其范围内完全不变。 - TamaMcGlinnDouble类型不是用于小数计算的正确数据类型,应该使用Decimal类型。主要原因在于double类型存储数字的方式 - 它本质上是十进制数字的二进制近似值。