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”,有何不同?

  • 相关阅读:
    多表关联 update
    pdf转成图片
    JS中也可以使用JSTL和EL标签
    JSTL String时间转成 date
    SQL函数创建错误
    使用 itext、flying-saucer 实现html转PDF(转)
    Redis 命令参考
    1、课程介绍
    layui 弹出框提交表单
    一张图解析
  • 原文地址:https://www.cnblogs.com/tukzer/p/2957060.html
Copyright © 2011-2022 走看看