String x = "22222222222222222";
 
 String y = "33333333333333333";
 
 double s = Double.parseDouble(x)+Double.parseDouble(y);
   
结果为:5.5555555555555552E16 可是我想要的结果是:55555555555555555

解决方案 »

  1.   

    整数用BigInteger
    小数用BigDecimal
      

  2.   

    String x = "22222222222222222";        String y = "33333333333333333";        BigDecimal bd1 = new BigDecimal(x);
            BigDecimal bd2 = new BigDecimal(y);
            
            
            System.out.println(bd1.add(bd2).toPlainString());
    大数相加最好用BigDecimal类 不然有可能会丢失精度
      

  3.   

    bigint 带符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到18446744073709551615。 
      

  4.   

    不好意思,我新人,能写点具体点吗,这个是String x = "22222222222222222"字符串的,怎么转成BigDecimal啊
      

  5.   

    如果超过了bigint,的范围,可以考虑用循环链表
      

  6.   

    看到BigInteger、BigDecimal就想到前段时间自己写的BigDecimal开n次方根的东西= =