1️⃣ java.math 패키지

✔ 왜 필요할까?

그래서 → 정확한 연산을 위한 전용 클래스 제공


2️⃣ BigDecimal 클래스 (정밀한 실수 표현)

특징 설명
정밀한 소수 표현 가능 실수 연산 오차 방지
문자열 기반 생성 권장 "1.2345" 형식으로 생성
반올림 / 버림 / 자리수 조정 지원 .setScale(), .divide()

✅ 예제

BigDecimal a = new BigDecimal("837462728289.84827262");
BigDecimal b = a.movePointRight(2);
System.out.println(b);

BigDecimal c = a.divide(b, BigDecimal.ROUND_DOWN);
System.out.println(c);

c = a.divide(b, 5, BigDecimal.ROUND_DOWN);
System.out.println(c);

출력

83746272828984.827262
0.01000000
0.01000


3️⃣ BigInteger 클래스 (매우 큰 정수 표현)

특징 설명
long 범위 초과 정수 저장 가능 암호/보안/과학 계산에서 자주 사용
비교는 compareTo() 사용 결과: -1, 0, 1

✅ 예제

BigInteger a = new BigInteger("1234567890000");
BigInteger b = new BigInteger("9876543210000");

if(a.compareTo(b) <= 0)
    System.out.println(a.min(b));
else
    System.out.println(a.max(b));


4️⃣ java.lang.Math 클래스 (수학 연산 도구 모음)