[프로그래머스] 두 수의 나눗셈

 

모든 계산을 int로 하게 된다면 소수점 이하가 절삭된 채로 계산이 된다.

그래서 1.5가 나와도 1이고 그것에 1000을 곱하면 1000이 된다.

 

처음 생각난 건 float였다.

하지만 float와 double은 둘 다 실수를 표현하는 데이터 형이지만

더 높은 정밀도를 원한다면 double을 이용해야한다.

class Solution {
    public int solution(int num1, int num2) {
        int answer = 0;
        double preAnswer = (double) num1 / num2;
        preAnswer = 1000 * preAnswer;
        answer = (int)preAnswer;
        return answer;
    }
}

살짝의 캐스팅 개념이 있으면 좋을 것 같다고 생각한다.

 

int형인 num1과 2를 double로 업캐스팅하고 계산한다.

이후 그 값들을 int로 다운캐스팅하면 계산된 preAnswer값의 소수점 아래를 절삭해

 

모든 계산을 int로 하게 된다면 소수점 이하가 절사된 채로 계산이 된다.

 

그래서 1.5가 나와도 1이고 그것에 1000을 곱하면 1000이 된다.