I.BigInteger
# 개념
1. Long타입보다 큰 정수를 다룬다
2. 자동변환을 지원하지 않음 -> 생성자로 정수데이터를 문자열형으로 전달해야한다.
- Wrapper 클래스 타입은 오토박싱/언박싱을 지원하지만 BigInteger타입은 No
# 기본데이터타입으로 변환하기
- ___Value() 메서드를 사용함
- 오버플로우 발생 가능성 있음.
# 연산
- 일반산술연산자 사용이 불가능
- 반드시 연산메서드로 연산을 수행해야한다.
- add() - +
- subtract() - -
- multiply() - *
- divide() - /
- remainder() - %
- mod - 주의! 두번째 피연산자가 음수인 경우 예외발생함.
II. BigDecimal
# 개념
- 실수의 표현방식으로 인하여 정확도가 떨어지는 문제를 해결하기 위하여 사용한다.
- 생성자에서 문자열형으로 값을 전달하는 것을 추천함
# 연산
- 기본산술연산자 사용 불가능. 연산 메서드 사용해야함.
# 참고
- 기본데이터타입의 데이터를 BigDecimal의 생성자에 전달하는 경우 이상한 값이 되므로 주의.
double d3 = 1.1;
BigDecimal bc3 = new BigDecimal(d3);
System.out.println(bc3);//1.100000000000000088817841970012523233890533447265625
- 기본데이터타입의 데이터를 -> 문자열형으로 변환하여 -> BigDecimal의 생성자에 전달하면 Ok
double d3 = 1.1;
//1.
BigDecimal bc3_1 = new BigDecimal(String.valueOf(d3));
//2.
BigDecimal bc3_2 = new BigDecimal(Double.toString(d3));
//3.
BigDecimal bc3_3 = new BigDecimal(d3+"");// => 널스트링과 결합
'개발자 양성과정 필기노트 > JAVA' 카테고리의 다른 글
사용자 정의 예외 (0) | 2021.11.13 |
---|---|
데이터 형식화 클래스 (0) | 2021.11.13 |
Enum (0) | 2021.11.13 |
JFrame 이벤트처리하는 5가지 방법 (0) | 2021.11.02 |
Date, Calendar 클래스 / Time패키지 (0) | 2021.10.10 |
댓글