더북(TheBook)

더하기는 i5j2가 더해져 7이라는 값을 출력합니다. 빼기도 3을 출력합니다. 곱하기도 마찬가지입니다. 별표(*)를 사용해 출력하면 곱한 값 10을 출력합니다. 나누기는 ‘왼쪽에 있는 피연산자를 오른쪽 피연산자로 나누어서 그 몫을 구해주세요.’라는 의미입니다. 따라서 ‘i / j’는 52로 나눈 값 2가 나옵니다.

 

자, 여기서 문제입니다. 52로 나누면 2.5인데 왜 2.5가 아니라 2가 나왔을까요? 왜냐하면 변수가 정수와 정수(int i, int j)로 선언했기 때문에 피연산자 역시 정수이기 때문입니다. 정수끼리의 연산은 정숫값으로만 반환됩니다.

 

자, 두 번째 문제입니다. 만약 나눈 결과로 2.5라는 값을 얻고 싶다면 어떻게 해야 할까요? 답은 피연산자 둘 중에 최소한 하나가 실수여야 합니다. 그럼 하나를 실수로 바꿔볼까요? 앞에서 공부한 형변환을 사용하면 됩니다. jdouble형으로 형변환하겠습니다. 이런 것을 캐스팅 연산자라고도 합니다. 단항 연산자입니다. j를 실수형으로 바꾸고 난 다음 다시 연산하면 2.5라는 실숫값을 얻을 수 있습니다.

public class OperatorExam {

    public static void main(String[] args) {
        int i = 5;
        int j = 2;
        System.out.println(i / (double) j);    
    }
}

 

실행결과

2.5
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.