1. BigInteger
정수형으로 표현할 수 있는 값의 한계가 있다. 가장 큰 정수형 타입인 long으로 표현할 수 있는 값은 10진수 19자리 정도이다. 이 값 보다 더 큰 값을 다뤄야 할 때 사용하면 좋은 것이 BigInteger이다.
내부적으로 int배열을 사용해서 값을 다룬다. 그래서 long타입보다 훨씬 큰 값을 다룰 수 있지만 성능은 떨어진다.
docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html
2. BigDecimal
double타입으로 표현할 수 있는 값은 범위가 넓지만, 정밀도가 최대 13자리 밖에 되지 않고 실수형의 특성상 오차를 피할 수 없다. BigDecimal은 실수형과 달리 정수를 이용해서 실수를 표현한다.
실수의 오차는 10진 실수를 2진 실수로 정확히 반환할 수 없는 경우가 있기 때문에 발생하는 것이므로, 오차가 없는 2진 정수로 변환하여 다루는 것이다. 실수를 정수와 10의 제곱의 곱으로 표현한다.
docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html
'Java > 기초' 카테고리의 다른 글
[Java] 지네릭스(Generics) (0) | 2021.08.08 |
---|---|
[Java] 인터페이스 vs 추상클래스 (0) | 2021.02.07 |
[Java] StringTokenizer 클래스 (0) | 2020.11.15 |
[Java] 래퍼(Wrapper) 클래스, 정규식(Regular Expression) (0) | 2020.11.15 |
[Java] 날짜와 시간 & 형식화 (0) | 2020.10.02 |