Java : 형 변환

커비·2024년 11월 11일
0

Java

목록 보기
25/55
post-thumbnail

🔄 자동 형 변환과 강제 형 변환

자동 형 변환

: 작은타입 > 큰 타입 형 변환시
: 더 큰 표현범위를 가진 타입으로 변환되는 것이라 값의 손실이 없음
: 값의 손실없이 변환이 가능하기 때문에 컴파일러가 자동으로 형 변환을 해줌

강제 형 변환 = 캐스팅

: 더 작은 표현범위를 가진 타입으로 변환되는 것이라 값의 손실이 생김
: 값의 손실이 생기기 때문에 자동으로 형 변환을 해주지 않고 개발자가 선택하여 형 변환을 함


📍 double형 or float형 ▶️ int 형 변환

		// double -> int
        // 실수 -> 정수(0.xxxx -> 0)
        double doubleNumber = 10.101010;

        // 변환(int)
        int intNumber;
        intNumber = (int)doubleNumber; // double -> int

        System.out.println("Double Type =>" + doubleNumber);
        System.out.println("Int  Type =>" + intNumber);
        
        
        // float -> int
        float floatNumber = 10.1010f;
        int intNumber;
        intNumber = (int)floatNumber;

        System.out.println("Float Type ->" + floatNumber);
        System.out.println("Int Type ->" + intNumber);
        
        // 정수 -> 실수, 명시적 형 변환
        int intNumber = 10;

        double doubleNumber = (double)intNumber;
        float floatNumber = (float)intNumber;

        System.out.println("intNumber -> " + intNumber);
        System.out.println("doubleNumber -> " + doubleNumber);
        System.out.println("floatNumber -> " + floatNumber);

🚧 여기서 잠깐!

전체주석을 할 때에는 주석할 코드를 잡은 후 Command + / 를 누르면 된다.


변수 타입별 바이트 크기 순서

Byte(1) ▶️ short(2) ▶️ int(4) ▶️ long(8) ▶️ float(4) ▶️ double(8)

✅ Byte ▶️ int 형 변환

public class JavaInt {
    public static void main(String[] args) {
        // (1) byte -> int
        byte byteNumber = 10;
        int intNumber = byteNumber;

        System.out.println(intNumber);
    }
}

✅ char ▶️ int 형 변환

// (2) char(1) -> int(4)
   char charAlphabet = 'A';
   intNumber = charAlphabet; // char -> int 자동 형 변환
   System.out.println(intNumber);

✅ int ▶️ long 형 변환

// (3) int -> long number 형 변환
        intNumber = 100;
        long longNumber = intNumber;
        System.out.println(longNumber);

✅ int ▶️ double 형 변환

// (4) int -> double 형 변환
        intNumber = 200;
        double doubleNumber = intNumber;
        System.out.println(doubleNumber);

정수와 실수로 나누기 (자동 형 변환)

public class JavaLast1 {
    public static void main(String[] args) {
        // 작은 크기의 타입이 큰 크기의 타입과 '계산'될 때
        // 자동으로 큰 크기의 타입으로 형 변환이 된다.

        int intNumber = 10;
        double doubleNumber = 5.5;
        double result = intNumber + doubleNumber;

        System.out.println("Plus => " + result);

        // 1) 정수로 나누기
        int iResult = intNumber / 4; // 2.5로 예상했지만 소수점을 버리고 2라는 값이 나옴

        // 2) 실수로 나누기
        double dResult = intNumber / 4.0;

        System.out.println(iResult + " / " + dResult);
    }
}
profile
전공은 컴퓨터공학, 복수전공은 해킹보안학, 직장은 방학(파워 구직중)

0개의 댓글