我不知道 什么 时候他们写道,他们吸烟。
Double.Epsilon是最小的可表示的非标准浮点值,不为0。您所知道的是,如果存在截断错误,它将始终
大 于此值。更大。
该
System.Double类型可以表示精确到15位数字的值。因此,如果双精度值
x等于某个常数,则简单的一阶估计是使用常数* 1E-15的ε
public static bool aboutEqual(double x, double y) { double epsilon = Math.Max(Math.Abs(x), Math.Abs(y)) * 1E-15; return Math.Abs(x - y) <= epsilon;}但是,您必须要小心,截断错误可能会累积。如果
x和
y是计算值,则必须增加epsilon。



