printf, Math.round, Math.floor, Math.ceil
정수형 / 정수형은 소수점이 버려진다.
따라서 하나의 수라도 실수형으로 캐스팅해줘야 올바른 실수 값이 나온다고 한다.
프로그래머스 기능 개발 문제를 푸는데 테스트케이스 11번이 계속 틀리길래 반례 찾다가 100 / 34가 2.9xxx였고 이를 나눴을 때 2라는 값이 나와서 문제가 발생했었다.
실질적으로 3 값을 반환해줘야 올바른 정답이 도출되기 때문에 반올림이 필요했다.
그래서 int calDivNex = Math.round((100-progresses[i]) / speeds[i]);
위와 같이 Math.round()
를 사용해봤는데 안돼서 100 / 34 값을 직접적으로 출력해보니 2.002(?)라는 값이 출력되었다.
이유를 모르겠어서 물어봤더니 정수형 끼리 연산은 자동으로 소수점을 버린다고 한다.