BigDecimal 소개
자바의 BigDecimal
클래스는 부동 소수점 연산에 있어 높은 정확도를 제공한다. 이 클래스는 금융 계산, 과학 계산 등에서 정확한 숫자 처리가 필수적일 때 사용된다.
BigDecimal의 주요 메서드
BigDecimal
은 add()
, subtract()
, multiply()
, divide()
등의 사칙연산 메서드를 포함한다.
코드는 실제로 돌려보면서 무슨 차이인지 확인해보면 좋다.
사칙연산 예제
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal num1 = new BigDecimal("10.75");
BigDecimal num2 = new BigDecimal("2.50");
BigDecimal sum = num1.add(num2);
BigDecimal difference = num1.subtract(num2);
BigDecimal product = num1.multiply(num2);
BigDecimal quotient = num1.divide(num2, 2, BigDecimal.ROUND_HALF_UP);
System.out.println("Sum: " + sum);
System.out.println("Difference: " + difference);
System.out.println("Product: " + product);
System.out.println("Quotient: " + quotient);
}
}
BigDecimal 스케일 조정 예제
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main {
public static void main(String[] args) {
BigDecimal original = new BigDecimal("123.456789");
// 반올림
BigDecimal roundHalfUp = original.setScale(3, RoundingMode.HALF_UP);
// 반내림
BigDecimal roundHalfDown = original.setScale(3, RoundingMode.HALF_DOWN);
// 올림
BigDecimal roundCeiling = original.setScale(3, RoundingMode.CEILING);
// 내림
BigDecimal roundFloor = original.setScale(3, RoundingMode.FLOOR);
System.out.println("Original: " + original);
System.out.println("Rounded Half Up: " + roundHalfUp);
System.out.println("Rounded Half Down: " + roundHalfDown);
System.out.println("Rounded Ceiling: " + roundCeiling);
System.out.println("Rounded Floor: " + roundFloor);
}
}
BigDecimal에서 다른 자료형으로의 형 변환 예제
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal bigDecimal = new BigDecimal("12345.6789");
long longValue = bigDecimal.longValue();
int intValue = bigDecimal.intValue();
double doubleValue = bigDecimal.doubleValue();
String stringValue = bigDecimal.toString();
System.out.println("Long value: " + longValue);
System.out.println("Int value: " + intValue);
System.out.println("Double value: " + doubleValue);
System.out.println("String value: " + stringValue);
}
}
BigDecimal끼리 비교하는 예제
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal num1 = new BigDecimal("123.45");
BigDecimal num2 = new BigDecimal("123.45");
if (num1.compareTo(num2) > 0) {
System.out.println(num1 + " is greater than " + num2);
} else if (num1.compareTo(num2) < 0) {
System.out.println(num1 + " is less than " + num2);
} else {
System.out.println(num1 + " and " + num2 + " are equal");
}
}
}
장단점 분석
BigDecimal
의 가장 큰 장점은 높은 정확도를 제공한다는 것이다. 반면, 기본 자료형보다 처리 속도가 느리고 메모리 사용량이 많다는 단점도 있다.
'프로그래밍언어 > Java' 카테고리의 다른 글
[Java] 큰 숫자를 다루기 위한 BigInteger 개념 및 사용 방법 (0) | 2024.04.04 |
---|---|
[Java] 기본 변수 타입과 변수의 크기와 특징 (0) | 2024.04.03 |
[Java] 사용자 입력 및 출력 처리하기 (0) | 2024.04.02 |
[Java] 최솟값, 최댓값 찾기 (0) | 2024.04.01 |
[Java] 문자열 치환하는 방법(replace, replaceAll, replaceFirst) (1) | 2024.03.31 |
댓글