zoukankan      html  css  js  c++  java
  • BigDecimal(一):比较大小

    BigDecimal是java.math包中提供的API类
    #####代码展示#####
    public class Test {
    public static void main(String[] args) throws Exception {
    BigDecimal a = new BigDecimal("0");
    BigDecimal b = new BigDecimal("0.00");
    BigDecimal c = new BigDecimal("0");
    System.out.println(a.equals(b)); //false
    System.out.println(a.equals(c)); //true
    System.out.println(a.compareTo(b)==0); //true
    }
    }
    BigDecimal类型的数据比较大小时应该使用compareTo方法
    如果方法的调用方的值大于方法中参数值,即a>b,方法的返回结果是1;
    如果方法的调用方的值小于方法中参数值,即a<b,方法的返回结果是-1;
    如果方法的调用方的值等于方法中参数值,即a=b,方法的返回结果是0;
    ####BigDecimal类中的compareTo方法######
    public int compareTo(BigDecimal val) {
    if (scale == val.scale) {
    long xs = intCompact;
    long ys = val.intCompact;
    if (xs != INFLATED && ys != INFLATED)
    return xs != ys ? ((xs > ys) ? 1 : -1) : 0;
    }
    int xsign = this.signum();
    int ysign = val.signum();
    if (xsign != ysign)
    return (xsign > ysign) ? 1 : -1;
    if (xsign == 0)
    return 0;
    int cmp = compareMagnitude(val);
    return (xsign > 0) ? cmp : -cmp;
    }
    #####BigDecimal类中的equals方法#####
    @Override
    public boolean equals(Object x) {
    if (!(x instanceof BigDecimal))
    return false;
    BigDecimal xDec = (BigDecimal) x;
    if (x == this)
    return true;
    if (scale != xDec.scale)
    return false;
    long s = this.intCompact;
    long xs = xDec.intCompact;
    if (s != INFLATED) {
    if (xs == INFLATED)
    xs = compactValFor(xDec.intVal);
    return xs == s;
    } else if (xs != INFLATED)
    return xs == compactValFor(this.intVal);

    return this.inflated().equals(xDec.inflated());
    }
    BigDecimal类型的数据比较应使用compareTo方法,不应使用equal方法
  • 相关阅读:
    vsphere中虚机的cpu热插拔和内存热添加
    vsphere storage appliance工作原理和实施
    vmware产品框架-计算中心,5.1更新等
    vcenter建立cluster
    vcenter 5.1安装亲历
    openfiler在esxi下的安装配置
    升级华为s2016
    ubuntu下配置华为交换机s2016
    Fibre Channel address weaknesses
    vsphere HA内幕变化
  • 原文地址:https://www.cnblogs.com/chuzijing/p/14599880.html
Copyright © 2011-2022 走看看