본문 바로가기

Java/3. 데이터 타입(Data Type)

Java - 데이터 타입 변환

타입변환 : 데이터 타입을 다른 데이터 타입으로 변환하는 것

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