[java] BigDecimal에 대한 추가

BigDecimal유형으로 표시된 일부 통화 값으로 간단한 합계를 원합니다 .

BigDecimal test = new BigDecimal(0);
System.out.println(test);
test.add(new BigDecimal(30));
System.out.println(test);
test.add(new BigDecimal(45));
System.out.println(test);

분명히 나는 BigDecimal산술을 잘 이해하지 못합니다 . 출력 결과를 참조하십시오.

Test
0
0
0

누구든지 나를 도울 수 있습니까?



답변

BigDecimal이 작업을 수행 할 수 있도록 변경할 수 없습니다 :

BigDecimal result = test.add(new BigDecimal(30));
System.out.println(result);


답변

그것은 자바 문서에서처럼 보이는 이곳 이 추가 반환 새로운 BigDecimal를 :

BigDecimal test = new BigDecimal(0);
System.out.println(test);
test = test.add(new BigDecimal(30));
System.out.println(test);
test = test.add(new BigDecimal(45));
System.out.println(test);


답변

BigDecimal test = new BigDecimal(0);
System.out.println(test);
test = test.add(new BigDecimal(30));
System.out.println(test);
test = test.add(new BigDecimal(45));
System.out.println(test);


답변

실제로 오히려 쉽습니다. 그냥 이렇게 :

BigDecimal test = new BigDecimal(0);
System.out.println(test);
test = test.add(new BigDecimal(30));
System.out.println(test);
test = test.add(new BigDecimal(45));
System.out.println(test);

또한보십시오: BigDecimal#add(java.math.BigDecimal)


답변

BigInteger는 변경할 수 없습니다. 이렇게해야합니다.

  BigInteger sum = test.add(new BigInteger(30));
  System.out.println(sum);


답변

//you can do in this way...as BigDecimal is immutable so cant set values except in constructor

BigDecimal test = BigDecimal.ZERO;
BigDecimal result = test.add(new BigDecimal(30));
System.out.println(result);

result would be 30


답변

BigDecimal no = new BigDecimal(10); //you can add like this also
no = no.add(new BigDecimal(10));
System.out.println(no);

20