Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 单曲';你不平等吗?_C#_Nan - Fatal编程技术网

C# 单曲';你不平等吗?

C# 单曲';你不平等吗?,c#,nan,C#,Nan,我在调试一些单元测试时遇到了这个问题,这些测试将返回的单个数组与预期结果进行比较 System.Single.NaN == System.Single.Nan; 单元测试预期为true,但其计算结果为false。当single的其他静态方法返回true时,为什么这个值为false?NaN不是常数吗 System.Single.MaxValue == System.Single.MaxValue; System.Single.Epsilon == System.Single.Epsilon; n

我在调试一些单元测试时遇到了这个问题,这些测试将返回的单个数组与预期结果进行比较

System.Single.NaN == System.Single.Nan;
单元测试预期为true,但其计算结果为false。当single的其他静态方法返回true时,为什么这个值为false?NaN不是常数吗

System.Single.MaxValue == System.Single.MaxValue;
System.Single.Epsilon == System.Single.Epsilon;
null == null;

声明:“两个NaN值被认为彼此不相等。”但这个问题是出于好奇,为什么这比其他任何东西都重要。

,因为IEEE 754标准(用于
浮点
的标准)这么说

引用

与NaN进行比较时,即使与自身进行比较,也始终会返回无序结果。比较谓词为信令或非信令,信令版本表示此类比较的无效异常。相等和不相等谓词是非信令的,因此可以使用返回false的x=x来测试x是否是安静的NaN。如果其他标准比较谓词接收到NaN操作数,则它们都会发出信号,该标准还提供这些其他谓词的非信号版本。谓词isNaN(x)确定某个值是否为NaN,并且从不发出异常信号,即使x是发出信号的NaN


(请注意,.NET不支持信令NaN,并且可能将其视为非信令)

因为IEEE 754标准(用于
浮点
双精度
的标准)这样说

引用

与NaN进行比较时,即使与自身进行比较,也始终会返回无序结果。比较谓词为信令或非信令,信令版本表示此类比较的无效异常。相等和不相等谓词是非信令的,因此可以使用返回false的x=x来测试x是否是安静的NaN。如果其他标准比较谓词接收到NaN操作数,则它们都会发出信号,该标准还提供这些其他谓词的非信号版本。谓词isNaN(x)确定某个值是否为NaN,并且从不发出异常信号,即使x是发出信号的NaN

(请注意,.NET不支持信令NaN,可能将其视为非信令)

有人曾经谈论过
Double.NaN
。在那篇文章中我能找到的最好的答案是“因为这就是它的定义”

我同意,这不是很令人满意。

曾经有人谈论过《双重密码》.NaN。在那篇文章中我能找到的最好的答案是“因为这就是它的定义”


不太令人满意,我同意。

没错。NaN==NaN总是错误的。这是一种测试某个变量是否等于NaN的方法,如

如果(x!=x) //做点什么


这是正确的。NaN==NaN总是错误的。这是一种测试某个变量是否等于NaN的方法,如

如果(x!=x) //做点什么


如果你会考虑楠实际上意味着什么,也许更容易理解为什么南斯永远是不平等的。“A”是NaN,“b”也是NaN,“其他b****s”仍然是NaN。他们平等吗?不,如果你想知道楠实际上意味着什么,那也许更容易理解为什么NANS永远不平等。“A”是NaN,“b”也是NaN,“其他b****s”仍然是NaN。他们平等吗?不