에러

[에러] java.lang.NumberFormatException: For input string: "0-17" 원인

뚜키 💻 2021. 9. 1. 23:33
반응형

DB에서 받아온 데이터를 엑셀로 만들어 뿌려줄때 이 현상이 발생했다.

 

엑셀을 만들때 데이터를 String을 double로 파싱해서 셋팅하는데 그부분에서 해당 오류가 발생했다.

 

java.lang.NumberFormatException: For input string: "0-17"
	at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
	at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
	at java.lang.Double.parseDouble(Double.java:538)

 

 

[원인]

double로 변환하려는 데이터의 소수점 길이가 너무 길어서 해당 오류가 발생했다. (소수점 17자리까지 0이 나왔다...)

 

내 경우에는 DB로 mssql과 oracle을 사용하는데 mssql에서 소수점있는 컬럼끼리 나누기를 하니까 소수점길이가 엄청 길어지는데

그렇게 받아온 String을 double로 변환하려고 하니까 발생하는 오류였다.

(똑같은 쿼리를 oracle로 조회를 했을때는 문제가없었다)

 

[해결]

불필요하게 소수점길이가 길어서 생긴 문제여서 데이터를 받아올때 소수점길이를 제한해주었다. (1.00000000000000000 이런식으로 데이터가 조회되고있었다)

 

반응형