首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

一道神也做不对的C#读程序题!该如何解决

2012-02-01 
一道神也做不对的C#读程序题!double i -100i Math.Sqrt(i)if (i double.NaN){Console.Write(输

一道神也做不对的C#读程序题!
double i = -100;
  i = Math.Sqrt(i);
  if (i == double.NaN)
  {
  Console.Write("输出错误!");
  }
  else
  {
  Console.Write(i.ToString());
  }
那个仁兄能够不用运行程序就知道输出结果。

[解决办法]
if (i == double.NaN) 
上面的判断语句有错误,改成下面的
if (double.IsNaN(i))
[解决办法]
可以简化一下测试:

C# code
double i = double.NaN;Console.WriteLine(i == double.NaN); // False;Console.WriteLine(double.Equals(i, double.NaN)); // True;
[解决办法]
C# code
Console.WriteLine("{0},{1}",i.GetHashCode(),double.NaN.GetHashCode());             Console.WriteLine(Equals(i, double.NaN));
[解决办法]
http://www.msdn.net/library/chs/default.asp?url=/library/CHS/cpref/html/frlrfsystemdoubleclassnantopic.asp
NET Framework 类库

Double.NaN 字段
表示不是数字 (NaN) 的值。此字段为常数。

[Visual Basic]
Public Const NaN As Double
[C#]
public const double NaN;
[C++]
public: const double NaN;
[JScript]
public var NaN : double;
备注
此常数的值是零被零除所得到的结果。

当运算结果未定义时返回此常数。

使用 IsNaN 确定某个值是否不是数字。不可能通过将某个值与另一个等于 NaN 的值进行比较来确定该值是否不是数字。

热点排行