타입변환 : 데이터 타입을 다른 데이터 타입으로 변환하는 것
1. 자동 타입변환 : 큰 범위 타입 = 작은 범위 타입
// 정수타입 -> 정수타입 자동변환
byte b = 10;
int i = b; // 10 저장
// 정수타입 -> 실수타입 자동변환
long l = 5000000000L;
float f = l; // 5.0E9f 로 저장
double d = l; // 5.0E9 로 저장
# 정수 연산에서의 자동 타입변환
정수타입 변수가 산술 연산식에서 피연산자로 사용될때 작은 타입 -> 큰타입으로 자동변환
public class TypeConversion {
public static void main(String[] args) {
// 정수타입 -> 정수타입 자동변환
byte b = 10; // byte 타입 변수 b
short s = 20; // short 타입 변수 s
int i = b+s; // int 타입 연산실행시 b, s 변수의 타입이 int로 자동 변환
System.out.println(i);
}
}
출력결과
30
# 실수 연산에서의 자동 타입변환
산술 연산식에서 피연산자중 하나가 double 타입일경우 다른 피연산자도 double 타입으로 자동변환
public class TypeConversion {
public static void main(String[] args) {
// 정수타입 + 실수타입
int i = 2;
double d = 1.1;
System.out.println(i+d); // double 타입 d가 있으므로 i변수의 타입이 double로 자동 변환
}
}
출력결과
3.1
2. 강제 타입변환 : 작은 범위 타입 = (변환타입)큰 범위 타입
// 정수타입 -> 정수타입 강제변환
int i = 10;
byte b = (byte) i // 강제 타입변환
// 실수타입 -> 정수타입 강제변환
double d = 3.14;
int i = (int) d; // 소수점을 제외한 3 저장
# 문자열타입을 기본타입으로 강제 변환
문자열타입 -> 정수, 실수, 논리 타입 강제변환 (parse)
// String -> byte
String str = "10";
byte by = Byte.parseByte(str); // byte 타입의 정수 10 저장
// String -> short
String str = "20";
short s = Short.parseShort(str); // short 타입의 정수 20 저장
// String -> int
String str = "300000";
int i = Integer.parseInt(str); // int 타입의 정수 300000 저장(int 타입 변환시 Integer 사용)
// String -> long
String str = "40000000000";
long l = Long.parseLong(str); // long 타입의 정수 40000000000 저장
// String -> double
String str = "1.1";
double d = Double.parseDouble(str); // double 타입의 실수 1.1 저장
// String -> float
String str = "2.1";
float f = Float.parseFloat(str); // float 타입의 실수 2.1 저장
// String -> boolean
String str = "0";
boolean bool = Boolean.parseBoolean(str); // boolean 타입에서 0은 false이므로 false 값 저장
# 기본타입을 문자열타입으로 강제 변환
정수, 실수, 논리 타입 -> 문자열타입 강제변환 (valueOf)
// int -> String
int i = 10;
String str = String.valueOf(i); // String 타입의 문자열 "10" 저장
// double -> String
double d = 1.1;
String str = String.valueOf(d); // String 타입의 문자열 "1.1" 저장
// boolean -> String
boolean bool = true;
String str = String.valueOf(bool); // String 타입의 문자열 "true" 저장
'Java > 3. 데이터 타입(Data Type)' 카테고리의 다른 글
Java - 데이터 타입 종류 (0) | 2022.11.09 |
---|