c#有一段代码如下:             double u = 3.14159-3.04159;
             double c = 0.1;         if (u == c)
            {
                Console.WriteLine("right");
            }
            else
                Console.WriteLine("Wrong");         为什么结果是“Wrong”,个人认为应该是right。实在搞不明白,希望高手指教!!!!

解决方案 »

  1.   

    你设置个断点看看u和c到底是什么不就知道了?
    double类型有可能在后面加了一大串乱七八糟的东西。
      

  2.   

    精度的问题。
    double u = 3.14159 - 3.04159;
    double c = 0.1;
    System.Console.WriteLine(u - c);
    输出是:
    8.32667268468867E-17
      

  3.   

    double是浮点数...浮点数是有误差的,所以不可能相等...
      

  4.   

    double u = 3.14159-3.04159; 
                double c = 0.1;         if (Math.Abs(u-c)<0.00001) 
                { 
                    Console.WriteLine("right"); 
                } 
                else 
                    Console.WriteLine("Wrong");