BigDecimal 4칙 연산 및 정밀도 계산
//
@Test
public void test1() {
BigDecimal num1 = new BigDecimal(4);
BigDecimal num2 = new BigDecimal(2);
// add
BigDecimal resultAdd = num1.add(num2);
// subtract
BigDecimal resultSubtract = num1.subtract(num2);
// multiply
BigDecimal resultMultiply = num1.multiply(num2);
// divide
BigDecimal resultDivide = num1.divide(num2);
System.out.println(" :" + resultAdd);
System.out.println(" :" + resultSubtract);
System.out.println(" :" + resultMultiply);
System.out.println(" :" + resultDivide);
}
결과:
:6
:2
:8
:2
2. 정밀도 계산
//
@Test
public void test2() {
BigDecimal num1 = new BigDecimal(1);
BigDecimal num2 = new BigDecimal(3);
try {
BigDecimal resultDivide = num1.divide(num2).setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println(" :" + resultDivide);
} catch (Exception e) {
System.out.println(" :" + e.getMessage());
}
BigDecimal resultDivide = num1.divide(num2, 2, BigDecimal.ROUND_HALF_UP);
System.out.println(" :" + resultDivide);
}
결과:
:Non-terminating decimal expansion; no exact representable decimal result.
:0.33
위에서 보듯이 진도를 잃어버릴 때 이상이 발생할 수 있다. 연산할 때 진도 연산을 하는 것은 문제가 없다. 여기는 정밀도 계산 방식을 사용해야 한다. 여기
BigDecimal.ROUND_HALF_UP
는 반올림이다.기타 정밀도 방법:
1、ROUND_UP
상향 반올림 모드, 반올림 수가 얼마든지 상향 진위
2、ROUND_DOWN
아래로 반올림 모드, 반올림 수가 얼마든지 상관없이
3、ROUND_CEILING
BigDecimal이 양수이면 반올림 동작과 ROUNDUP가 동일합니다.
BigDecimal이 음수이면 반올림 동작과 ROUNDDOWN은 동일합니다.
4、ROUND_FLOOR
BigDecimal이 양수이면 반올림 동작과 ROUNDDOWN 동일
BigDecimal이 음수이면 반올림 동작과 ROUNDUP가 동일합니다.
5、ROUND_HALF_UP
반올림 모드
6、ROUND_HALF_DOWN
반올림 모드
7、ROUND_HALF_EVEN 은행가 반올림
가장 가까운 숫자로 반올림하고 두 인접 숫자와 거리가 같으면 인접한 짝수로 반올림합니다.
반올림 동작 및 ROUNDHALF_UP가 동일합니다.
짝수인 경우 반올림 동작과 ROUNDHALF_DOWN은 동일합니다.
일련의 계산을 반복할 때, 이 반올림 모드는 누적 오류를 최소화할 수 있음을 주의하십시오.
이 반입 모델도'은행가 반입법'이라고 하는데 주로 미국에서 사용된다.반올림과 반올림 두 가지 상황.
만약 앞자리가 홀수라면, 자리에 들어가고, 그렇지 않으면 버려라.
다음 예는 소수점 1자리를 보존하는 것이다. 그러면 이런 반올림 방식의 결과다.
1.15>1.2 1.25>1.2
8、ROUND_UNNECESSARY
단언은 요청한 조작이 정확한 결과를 가지고 있기 때문에 반올림할 필요가 없다.
정확한 결과를 얻는 작업에 이 반올림 모드를 지정하면 Arithmetic Exception을 던집니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
static 간단한 설명static 방법은 일반적으로 정적 방법이라고 부른다. 정적 방법은 어떠한 대상에 의존하지 않고 접근할 수 있기 때문에 정적 방법에 있어this는 없다. 왜냐하면 그 어떠한 대상에도 의존하지 않기 때문이다. 대상이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.