孤独的NaN
2008-01-03 09:09
302 查看
很多高级语言中都有NaN的概念,用于表示其值不是数字的数字。例如,C#中的 float.NaN(Single.NaN)。它是单精度类型的,但是其值不是数字。 MSDN上备注如是:
此常数的值是零被零除所得到的结果。
当运算结果未定义时返回此常数。
使用 IsNaN 确定值是否为非数字。不可能通过将某个值与另一个等于 NaN 的值进行比较来确定该值是否不是数字。
虽然NaN的部分特点与正负无穷大类似,但它还是更另类的:其他的特殊数字与自己做比较,是相等的;但是NaN不仅不等于其他的数值,连自己也不相等。这点不明白CLR怎么处理来实现的,存储的数据又是什么。
综上,判断变量是不是数字,要用IsNaN这个方法,不要用判断式。若不是数字,IsNaN方法返回true;正负无穷大也是数字,会返回false。
此常数的值是零被零除所得到的结果。
当运算结果未定义时返回此常数。
使用 IsNaN 确定值是否为非数字。不可能通过将某个值与另一个等于 NaN 的值进行比较来确定该值是否不是数字。
虽然NaN的部分特点与正负无穷大类似,但它还是更另类的:其他的特殊数字与自己做比较,是相等的;但是NaN不仅不等于其他的数值,连自己也不相等。这点不明白CLR怎么处理来实现的,存储的数据又是什么。
综上,判断变量是不是数字,要用IsNaN这个方法,不要用判断式。若不是数字,IsNaN方法返回true;正负无穷大也是数字,会返回false。