double i=0.0/0.0;
if(i==i)
{
Console.WriteLine("YES");
}else{
Console.WriteLine("NO");
}
输出为:NO
注解:关键在0.0/0.0这个值,在IEEE 754浮点算术规则里保留了一个特殊的值用来表示一个不是数字的数量。这个值就是NaN("Not a Number"的缩写),对于所有没有良好定义的浮点计算都将得到这个值,比如:0.0/0.0;其实我们还可以直接使用Double.NaN来得到这个值。在IEEE 754规范里面规定NaN不等于任何值,包括它自己。此时打出 i 为:非数字。