BigDecimal類型比較數字大小


 

 

BigDecimal類型比較數字大小

1.轉成int

  1.  
    BigDecimal b1 = new BigDecimal("-121454125453.145");
  2.  
    if(b1.intValue()<0) {
  3.  
    System.out.println( "金額為負數!");
  4.  
    System.out.println(b1);
  5.  
    }

2.compareTo方法,

結果是:   -1:小於;   0 :等於;   1 :大於;

  1.  
    BigDecimal b1 = new BigDecimal("-121454125453.145");
  2.  
    if(b1.compareTo(BigDecimal.ZERO)==-1) {
  3.  
    System.out.println( "金額為負數!");
  4.  
    }

 

 
BigDecimal運算
10-19
BigDecimal運算Jar包。支持sin、cos、tan、asin、acos、atan、pow、sqrt、cbrt、root、log10、log、ln、exp、sinh、cosh、tanh、asi
java BigDecimal類型 比較大小
一般我們進行類型比較有.equals()、==、.compareTo()但是當比較bigdecimal類型時最好使用.compareTo()來比較大小BigDecimal a=BigDecimal.ZERO;BigDecimal b=BigDecimal.valueOf(0.000);BigDecimal c=BigDecimal.valueOf(0.0);a.equals(b) 的結果會是fal...

  • zzt_kkxinmo
    zzt_kkxinmo :你的那個bigdecimal轉換為int類型不是有問題嗎?2.5轉int類型不是失真了嗎?8月前回復
    • zhouyanqingbfq
      信仰歷程 回復:
      1.  
        public int compareTo(BigDecimal val) {
      2.  
        // Quick path for equal scale and non-inflated case.
      3.  
        if (scale == val.scale) {
      4.  
        long xs = intCompact;
      5.  
        long ys = val.intCompact;
      6.  
        if (xs != INFLATED && ys != INFLATED)
      7.  
        return xs != ys ? ((xs > ys) ? 1 : -1) : 0;
      8.  
        }
      9.  
        int xsign = this.signum();
      10.  
        int ysign = val.signum();
      11.  
        if (xsign != ysign)
      12.  
        return (xsign > ysign) ? 1 : -1;
      13.  
        if (xsign == 0)
      14.  
        return 0;
      15.  
        int cmp = compareMagnitude(val);
      16.  
        return (xsign > 0) ? cmp : -cmp;
      17.  
        }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM