"not >" 是否等同于“<=”

Is "not >" equivalent to "<=" for a double

double a, b = ...;

以下是 C# 语句

!(a > b)

a <= b

等效或是否有任何数字注意事项?

如果它们是标准的普通双精度数值,它们是等价的。

对于可空、NaN 等,这不是很清楚。

考虑

double? a = null;
double b = 1;

if (!(a > b))
{
   //yes
}
if ((a <= b))
{
   //no
}

或者正如 Marc Gravell♦ 指出的那样,下面展示了完全相同的行为,同时坚持纯 double:

double a = 42;
double b = double.NaN;