- 프로그래밍에서 하나의 데이터 타입을 다른 데이터 타입으로 변환하는 과정을 말한다.
- 형변환은 크게 자동 형 변환과 강제 형 변환 두 가지 유형으로 나눌 수 있다.
- 바이트 크기가 작은 자료형에서 큰 자료형으로 형 변환은 자동으로 아루어진다.
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 |