我在调试一些将返回的单个数组与预期结果进行比较的单元测试时遇到了这个问题。
System.Single.NaN == System.Single.Nan;
单元测试期望为真,但这评估为假。当 single 的其他静态方法返回 true 时,为什么这会评估为 false?NaN 不是一个常数值吗?
System.Single.MaxValue == System.Single.MaxValue;
System.Single.Epsilon == System.Single.Epsilon;
null == null;
http://msdn.microsoft.com/en-us/library/system.single.nan.aspx指出:“两个 NaN 值被认为是不相等的。” 但是这个问题是出于好奇,为什么这比其他任何事情都重要。