zoukankan      html  css  js  c++  java
  • 记录BigInteger犯过的一个错误

    public class StrTest {
        public static void main(String[] args) {
            BigInteger a = new BigInteger("1");
            BigInteger b = new BigInteger("2");
            BigInteger c = new BigInteger("3");
            BigInteger d = new BigInteger("0");
    
            d.add(a);
            d.add(b);
            d.add(c);
    //        BigInteger result = d.add(a).add(b).add(c);
            System.out.println(d.toString());
        }
    }

    打印结果为:0

    经过查看add()源码,看到如下代码:

    public BigInteger add(BigInteger val) {
            if (val.signum == 0)
                return this;
            if (signum == 0)
                return val;
         //注意:这里返回了新对象
    if (val.signum == signum) return new BigInteger(add(mag, val.mag), signum); int cmp = compareMagnitude(val); if (cmp == 0) return ZERO; int[] resultMag = (cmp > 0 ? subtract(mag, val.mag) : subtract(val.mag, mag)); resultMag = trustedStripLeadingZeroInts(resultMag); return new BigInteger(resultMag, cmp == signum ? 1 : -1); }
  • 相关阅读:
    SpringMVC扩展
    反射机制
    python day9
    python day8
    python day7
    python day6
    python day4
    python day3
    python day2
    python day1
  • 原文地址:https://www.cnblogs.com/xingrui/p/10733049.html
Copyright © 2011-2022 走看看