JAVA

자료형(데이터 타입) - 형 변환

jiyoon12 2025. 4. 22. 00:14
  • 프로그래밍에서 하나의 데이터 타입을 다른 데이터 타입으로 변환하는 과정을 말한다.
  • 형변환은 크게 자동 형 변환과 강제 형 변환 두 가지 유형으로 나눌 수 있다.
  • 바이트 크기가 작은 자료형에서 큰 자료형으로 형 변환은 자동으로 아루어진다.

 

 

 

package ch02;

/**
 * 형 변환이란?
 * 데이터의 타입을 다른 타입으로 변경하는 것
 * 자동 형 변환, 강제 형 변환
 */
public class TypeConversion {

    public static void main(String[] args) {

        // 1. 자동 형 변환 확인하기
        int intDataBox = 50;
        System.out.println(intDataBox);

        // 자연스럽게 형 변환(자동 형 변환) - 작은 상자에서 큰 상자로는 자동 형 변환 된다.
        double doubleDataBox = intDataBox;
        System.out.println(doubleDataBox);

        // 2. 강제 형 변환 확인하기
        final double PI = 3.14159;
        //int intBox = PI; // 컴파일 시점에 오류 발생

        // 개발자가 컴파일러에게 "컴파일러야 괜찮으니까 그냥 강제로 넣어"
        // 데이터 손실이 발생할 수 있지만 괜찮아!
        // 강제 형 변환
        int intBox = (int) PI;
        // 데이터 손실이 발생 했다.(소수점을 그냥 버림)
        System.out.println(intBox);

        // 연습
        double interestRate;
        int discount;
        interestRate = 15.5;
        // 4바이트 상자에 8바이트 상자를 넣으려고 하니까 컴파일러가 이거 오류 발생해!
        discount = (int) interestRate;
        System.out.println(discount);

        // 응용
        System.out.println((int) 7.5); // 강제 형 변환
        System.out.println((int) 0.1234); // 강제 형 변환


    } // end of main

} // end of class

package Exercise;

public class TypeConversionExercise {

    public static void main(String[] args) {

        int a = 300;
        double b = a; // 자동 형 변환 (작은 상자에서 큰 상자로 자연스럽게 들어간다)
        // b를 콘솔에 출력한다면 예상 결과는 ?
        System.out.println(b);

        // 문제
        double c = 5.67;
        int d = (int) c;

        // 문제
        float floatNum = 4.5f;
        int intNum = (int) floatNum;
        System.out.println(intNum);

        // 문제
        double largeValue = 150.75;
        byte byteValue = (byte) largeValue;
        System.out.println(byteValue);
    }
}

package Exercise;

public class Exercise4 {

    public static void main(String[] args) {

        // 59.99
        // 30% 할인된 가격을 출력 하시오.
        final double NUM = 59.99;
        final double NUM1 = 0.30; // 30% -> 퍼센트 100분의

        // 할인된 가격 = 원가 − (원가 × 할인율)
        double result = NUM - (NUM * NUM1);

        // 할인된 가격 = 원가 × (1 − 할인율)
        //double result = NUM * (1 - NUM1);
        System.out.println(result);
        // 최종 가격을 정수로 형 변환(강제 형 변환)
        int finalresult = (int) result;
        System.out.println("최종 할인 가격 : " + finalresult);
    }

}

'JAVA' 카테고리의 다른 글

항과 대입, 부호 연산자  (1) 2025.04.22
명령어를 통한 컴파일 실행  (0) 2025.04.22
자료형(데이터 타입) - 상수형  (0) 2025.04.22
자료형(데이터 타입) 연습문제  (0) 2025.04.22
자료형(데이터 타입) - 논리형  (0) 2025.04.22