본문 바로가기
JAVA

JAVA BigDecimal > int 형변환

by 오렌지코딩 2023. 2. 11.

https://wwwnghks.tistory.com/94

 

[Java] java.math.BigDecimal cannot be cast to java.lang.Integer

java 에서 java.math.BigDecimal cannot be cast to java.lang.Integer 에러 발생시 oracle의 컬럼 타입이 number 형인경우 형변환시 에러가 발생할 수 있습니다. int testNum = Integer.parseInt(String.valueOf(dataMap.get("num_val1")));

wwwnghks.tistory.com

 

List<Map<String, Integer>> 타입으로 테이블로부터 받아온 값 [{K, V}, {K, V} ....] 형태

key값은 데이터베이스 쿼리에서 지정 한 별칭으로 초기화된다.

 

이 때 받아온 숫자 값들의 크기를 비교 하려 할 때 형변환 필요

값이 정수이므로 (int) 값 형태로 형 변환 했더니  'ClasscassExeption?? ' 발생 ...

 

사실 <String, Integer> 인 MAP형태로 값을 받아왔으므로 굳이 형변환 해 줄 필요없을거라 생각하긴 했지만, 혹시나 해서 int 타입으로 형변환 해주었음에도 오류 발생.

 

데이터베이스로 부터 받아온 number타입 값은 자동으로 bigdecimal 타입으로 바뀌는 것인가??

아무튼 받아온 값을 int형으로 어떻게 형 변환 해야 하는지 구글링 해 본 결과 위의 포스팅 발견.

 

int testNum = Integer.parseInt(String.valueOf(dataMap.get("num_val1")));

 

받아온 값을 String형 변환 후, 다시 int형으로 변환해야 하는 것 같습니다.