특정 자료형의 데이터를 다른 자료형으로 표시해야 할 때가 있다.
어떤 경우에는 자연스럽게 표시가 되지만
경우에 따라서는 데이터가 손실되거나 오류가 발생할 수 도 있다.
package ch02;
public class TypeConversion {
/*
형 변환이란
데이터의 타입을 다른 타입으로 변경하는 것이다.
자동 형 변환, 강제 형 변환
*/
// entry
public static void main(String[] args) {
int intDataBox = 50;
double doubleDataBox = intDataBox;
/*
자연스럽게 형 변환이 됐다.
작은 상자 int 에서 큰 상자 double 로 옮겼기 때문
*/
System.out.println(intDataBox);
System.out.println(doubleDataBox);
// 강제 형 변환 확인하기
final double PI = 3.14159;
// int intBox = PI; // 컴파일 시점 오류 발생
/*
개발자는 컴파일러에게 이렇게 명령할 수 있다.
"컴파일러야 괜찮으니까 그냥 넣어"
"데이터 손실이 발생할 수 있지만 괜찮아"
*/
int intBox = (int)PI;
System.out.println(intBox);
/*
intBox = 3
데이터 손실이 발생했다.
소수점을 모두 버림
*/
// 연습
double interestRate;
int discount;
interestRate = 15.5;
// discount = interestRate;
/*
4byte 상자에 8byte 상자를 넣으려고 했더니
컴파일 시점에서 오류가 발생했다.
*/
discount = (int)interestRate; // 강제 형 변환
System.out.println(discount);
// 응용
System.out.println((int)7.5); // 강제 형 변환
System.out.println((int)0.1234);
} // end of main
} // end
// 연습
자료형을 올바르게 쓰지 않으면 심각한 데이터 손실이 발생할 수 있다.
// entry
public static void main(String[] args) {
int a = 300;
double b = a;
// b = 300.0 // 자동 형 변환
System.out.println("실수형: " + b);
// 문제
double c = 5.67;
int d = (int)c; // 강제 형변환
System.out.println("5.67 변환" + d);
// 문제
float floatNum = 4.5f;
int intNum = (int)floatNum;
System.out.println("4.5 변환" + intNum);
// 문제
double largeVallue = 150.75;
byte byteValue = (byte)largeVallue;
// byteValue = -106 / 데이터 손실 / 표현가능한 수로 대체
System.out.println("150.75 변환: " + byteValue);
} // end of main
} // end
'Java' 카테고리의 다른 글
반복문 while (0) | 2025.04.14 |
---|---|
반복문 for (0) | 2025.04.14 |
연산자 (= + - * / %) 의 종류와 활용 (0) | 2025.04.10 |
명령프롬프트를 통한 자바 실행 방법 (0) | 2025.04.10 |
데이터타입 - 논리형 (0) | 2025.04.10 |