본문 바로가기

LANGUAGES, METHODLOGY

[JAVA] double과 int 간의 형변환을 항상 주의할 것.

백준문제 4344번을 진행하면서 출력을 소숫자리까지 해야하기 때문에 double 배열을 사용하였는데


알고리즘은 문제 없는 것 같은데 0.000%로 출력이 되어 확인을 해보니


평균을 넘는 학생 수인 count와 student가 int형 변수였고, 이에 double형 배열에 값이 들어가지 않은 것이다.


수정 이후엔 올바르게 출력 되었으며 반올림 및 소숫자리 출력을 위해 String.format("형식", 변수) 를 사용하였다.


string 변수에 String.format("%.3f", rate[i]) 를 넣어준 후


그대로 sout으로 %를 달아 출력해주면 된다.



번외로 입력받은 수를 거꾸로 돌린 뒤 출력하는 문제가 있었는데, 여기서도 요즘 자주 애용하는


toCharArray를 사용해줬는데, char에 저장된 'char'형 숫자를 ((int) charA[i]) 식으로 출력하려니 


아스키코드 숫자만 출력하여 추가로 48을 빼서 형변환을 해야 숫자가 char에서 int로 올바르게 바뀌는 걸 확인했다.


주의할 것. 


double과 int 간 형변환시 반드시 치환문장 붙여줄 것.


char형 숫자 int로 변환 시 48을 반드시 빼줄 것.