首页 > 解决方案 > 浮点 Equals 和 C# 中的等式运算符 (==) 有什么区别?

问题描述

在 C# 中,Single.Equals

返回一个值,该值指示 Single 的两个实例是否表示相同的

虽然单身Equality operator==

相等运算符 == 如果其操作数相等则返回 true ,否则返回 false。

(强调我的)。

这些比较方法之间的一个显着区别涉及 NaN:

float.NaN.Equals(float.NaN) => true
float.NaN == float.NaN => false

我理解为什么operator==NaN 之间是错误的(在此处回答),但为什么Equals不同?是否有其他值Equals提供不同的结果operator==

标签: c#comparisonnanequality

解决方案


推荐阅读