为什么 BigDecimal 的 add 结果为 0

先看个例子:

	// 输出结果为 0
    public void testBigDecimal() {
        BigDecimal decimal = BigDecimal.ZERO;
 
        String x = "5";
 
        for (int i = 0; i < 3; i++) {
            decimal.add(new BigDecimal(x));
        }
        System.out.println(decimal);
    }

如果:

	// 输出结果为 15
    public void testBigDecimal() {
        BigDecimal decimal = BigDecimal.ZERO;
 
        String x = "5";
 
        for (int i = 0; i < 3; i++) {
            decimal = decimal.add(new BigDecimal(x));
        }
        System.out.println(decimal);
    }

原因:add() 方法不会改变子身的值 需要一个值去接收结果

你可能感兴趣的:(Java基础,java)