import java.math.BigDecimal;public class abc{
  public static void main( String[] args ){
   long long1 = 100000;
   long long2 = 9999;
   BigDecimal bd1 = BigDecimal.valueOf( long1 );
   BigDecimal bd2 = BigDecimal.valueOf( long2 );
   System.out.println( bd1.add( bd2 ) );}
}

解决方案 »

  1.   

    这个例子可能更能说明问题:
    public class TestTwoBig extends TestCase {
        public TestTwoBig(String name) {super(name);}    public void testError() {
            long l1 = Long.MAX_VALUE;
            long l2 = 1;        long l3 = l1+l2;
            assertTrue(l3<0); // 两个正整数相加小于零肯定溢出
        }    public void testRight() {
            BigDecimal l1 = BigDecimal.valueOf(Long.MAX_VALUE);
            BigDecimal l2 = BigDecimal.valueOf(1L);        BigDecimal l3 = l1.add(l2);
            assertEquals(Long.MAX_VALUE, l3.subtract(l2).longValue());
        }
    }