형 변환
변수 또는 상수 타입을 다른 타입으로 변환하는 것
- 기본형 중 boolean을 제외한 나머지는 서로 형 변환이 가능
- 기본형과 참조형 간 형 변환은 불가능
자동(암묵적) 형 변환
작은 타입에서 큰 타입으로 변환하는 것은 데이터의 손실(저장공간의 차지)이 발생하지 않기 때문에 자동 형 변환이 가능하다.
byte(1) -> short(2), char(2) -> int(4) -> long(8) -> float(4) -> double(8)
수동(명시적) 형 변환
1. String형 -> 숫자형
String numStr = "20221021";
// int
int intStr1 = Integer.parseInt(numStr);
int intStr2 = Integer.valueOf(numStr);
// double
double dbStr1 = Double.parseDouble(numStr);
double dbStr2 = Double.valueOf(numStr);
// float
float flStr1 = Float.parseFloat(numStr);
float flStr2 = Float.valueOf(numStr);
// long
long lStr1 = Long.parseLong(numStr);
long lstr2 = Long.valueOf(numStr);
// short
short shStr1 = Short.parseShort(numStr);
short shStr2 = Short.valueOf(numStr);
2. 숫자형 -> String형
// int
int intStr = 123;
String intStr1 = Integer.toString(intStr);
String intStr2 = String.valueOf(intStr);
String intStr3 = intStr + "";
// double
double dbStr = 1.23;
String dbStr1 = Double.toString(numStr);
String dbStr2 = String.valueOf(numStr);
// float
float flStr = (float) 1.23;
String flStr1 = Float.toString(flStr);
String flStr2 = String.valueOf(flStr);
// long
long lStr = 123;
String lStr1 = Long.toString(lStr);
String lstr2 = String.valueOf(lStr);
// short
short shStr = 123;
String shStr1 = Short.toString(shStr);
String shStr2 = String.valueOf(shStr);
3. String형 <-> Char형
// Char -> String
char cha1 = '1';
String str1 = String.valueOf(cha1); // '1'
char[] cha2 = {'a', 'b', 'c', 'd'};
String str2 = String.valueOf(cha2); // 'abcd'
// String -> Char
String str1 = 'abcd';
char cha1 = str1.charAt(0); // 'a'
char[] cha2 = str1.toCharArray(); // [abcd]
4. 정수형(int) <-> 실수형(float, double)
- 정수형 -> 실수형으로 변환할 땐 float 대신 double 사용
- float는 정밀도가 7자리라 오차값이 들어갈 수 있음 (ex. 91234567 (int) - 91234568.0 (float) - 91234568 (int))
// 실수 -> 정수는 소수점아래가 버려진다.
double dbNum = 12.34;
int intDbNum = (int)dbNum; // 12
float flNum = (float) 12.34;
int intFlNum = (int)flNum; // 12
// 정수 -> 실수는 자동형변환
int intNum = 123;
double dbNum = (double) intNum;
float flNum = (float) intNum;
반응형
'Algorithm > 정리' 카테고리의 다른 글
[Java] Stack 사용 (0) | 2023.01.08 |
---|---|
[Java] 문법, Method 정리 (0) | 2022.10.22 |
[Python] 정규 표현식 (0) | 2021.05.15 |
[Python] Import 위치 (0) | 2021.05.15 |
댓글