자바의 계산과 형변환

sangyong park·2024년 3월 27일

자바의 계산과 형변환

package casting;

public class Casting4 {

    public static void main(String[] args) {
        // 계산과 형변환

        int div1 = 3 / 2;
        System.out.println("div1 = " + div1); // 1

        double div2 = 3 / 2;
        System.out.println("div2 = " + div2); // 1.0

        double div3 = 3.0 / 2;
        System.out.println("div3 = " + div3); // 1.5

        double div4 = (double) 3 / 2;
        System.out.println("div4 = " + div4); // 1.5
    }
}

위 코드에서 3 / 2를 하면 1.5가 나와야 하는데 div1은 1이 출력된다.

이것은 타입이 int형이기 때문에 1.5에서 소숫점을 버리고 1이 출력이 된다

div2를 보자 div2를 출력해보면 1.0이 나온다 우선 자바에서 숫자 리터럴은 기본 int형이다.

그래서 계산을 하면 1.5에서 소숫점을 버리고 1이 되고 double형에 대입을 하니 1.0이 출력이 되는 것이다.

div3을 보자 3.0 / 2 이것은 1.5가 출력이 된다. 서로 다른 타입의 계산은 큰 범위로 자동 형변환이 일어난다. 그렇기 때문에 1.5가 출력이 되는 것이다.

div4의 경우에는 3을 double형으로 명시적 형변환을 해주었다. 그렇기 때문에 이것도 큰 범위의 타입으로 2가 자동 형변환이 일어나서 1.5가 출력이 되는 것이다.

자바에서 계산의 형변환은 크게 두 가지만 기억을하자

1. 같은 타입끼리의 계산은 같은 타입의 결과를 낸다.

2. 서로 다른 타입의 계산은 큰 범위로 자동 형변환이 일어난다.

profile
Dreams don't run away It is always myself who runs away.

0개의 댓글