zoukankan      html  css  js  c++  java
  • C#中值类型的Equls方法

    今天遇到double.Equals(0.0,0)返回False的问题,根据实际判断,使用0.0 == 0 才能正确的返回True,是否C#所有类型的Equals方法都是引用的比较,对于本身不是引用类型的值类型数据,如何判断引用呢,或者是有其他的原因,后面有时间搜索下。

    View Code
    double dblProduct = 0;
    
    if(double.Equals(dblProduct,0)) //False
    if(dblProduct == 0)  // True
    {
        double dblGapRate = (dblProduct - 1000) /dblProduct;   
    }

    补充1:代码中存在几个问题,猜测原因如下:

    1.double类型的比较问题,double类型和int类型进行比较时,编译器进行了隐式的转换,使得未报编译错误。但Equals时报不等,那==又是转换为什么类型比较的呢;

    2.代码在VS2010环境中dblGapRate返回值为-Infinity,以前应该有个期望的DivideByZeroException,难道是优化的结果?

    3.dblProduct.ToString()的结果为“0”,在监视中查看的为“0.0”,有何不同?

  • 相关阅读:
    DOM--6 向应用程序中加入ajax
    javascript优化--12模式(设计模式)03
    javascript优化--11模式(设计模式)02
    javascript优化--14模式2(DOM和浏览器模式)
    mvc-9测试和调试
    mvc-10部署
    mvc-6依赖管理
    less
    css3 总结03
    css3 总结02
  • 原文地址:https://www.cnblogs.com/tukzer/p/2957060.html
Copyright © 2011-2022 走看看