为什么float.NaN != double.NaN?
而float.PositiveInfinity == double.PositiveInfinity和float.NegativeInfinity == double.NegativeInfinity是相等的.
例:
bool PosInfinity = (float.PositiveInfinity == double.PositiveInfinity); //true
bool NegInfinity = (float.NegativeInfinity == double.NegativeInfinity); //true
bool isNanEqual = (float.NaN == double.NaN); //false, WHY?
Run Code Online (Sandbox Code Playgroud)
Dam*_*ver 44
NaN永远不会等于NaN(甚至在同一类型内).因此存在IsNaN函数的原因:
Double zero = 0;
// This will return true.
if (Double.IsNaN(0 / zero))
{
Console.WriteLine("Double.IsNan() can determine whether a value is not-a-number.");
}
Run Code Online (Sandbox Code Playgroud)
您还应该知道,您所显示的所有比较都不是"按原样"发生的.在编写时floatValue == doubleValue,浮点数实际上会在比较发生之前隐式转换为双精度数.
| 归档时间: |
|
| 查看次数: |
2999 次 |
| 最近记录: |