반응형
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
다음과 같이 할 수도 있습니다 :
BigDecimal A = new BigDecimal("10000000000");
BigDecimal B = new BigDecimal("20000000000");
BigDecimal C = new BigDecimal("30000000000");
BigDecimal resultSum = (A).add(B).add(C);
System.out.println("A+B+C= " + resultSum);
인쇄물:
A + B + C = 60000000000
BigDecimal demo = new BigDecimal(15);
내부적으로 입력을 저장하므로 (15) final private final BigInteger intVal;
문자열 생성시 동일한 개념 사용과 모든 입력이 마침내 저장됩니다. private final char value[];
따라서 함축적 인 버그가 없습니다.
Just another example to add BigDecimals
. Key point is that they are immutable and they can be initialized only in the constructor. Here is the code:
import java.util.*;
import java.math.*;
public class Main {
public static void main(String[] args) {
Scanner sc;
boolean first_right_number = false;
BigDecimal initBigDecimal = BigDecimal.ZERO;
BigDecimal add1 = BigDecimal.ZERO;
BigDecimal add2 = BigDecimal.ZERO;
while (!first_right_number)
{
System.out.print("Enter a first single numeric value: ");
sc = new Scanner(System.in);
if (sc.hasNextBigDecimal())
{
first_right_number = true;
add1 = sc.nextBigDecimal();
}
}
boolean second_right_number = false;
while (!second_right_number)
{
System.out.print("Enter a second single numeric value: ");
sc = new Scanner(System.in);
if (sc.hasNextBigDecimal())
{
second_right_number = true;
add2 = sc.nextBigDecimal();
}
}
BigDecimal result = initBigDecimal.add(add1).add(add2);
System.out.println("Sum of the 2 numbers is: " + result.toString());
}
}
참고URL : https://stackoverflow.com/questions/1846900/addition-for-bigdecimal
반응형
'programing tip' 카테고리의 다른 글
이 milw0rm 힙 스프레이 익스플로잇은 어떻게 작동합니까? (0) | 2020.06.15 |
---|---|
UILabel-줄 바꿈 텍스트 (0) | 2020.06.15 |
git init을 두 번 실행하면 리포지토리가 초기화되거나 기존 리포지토리가 다시 초기화됩니까? (0) | 2020.06.15 |
iPhone-그랜드 센트럴 디스패치 메인 스레드 (0) | 2020.06.15 |
사용하는 방법 ? (0) | 2020.06.15 |