Algorithm/정리

[Java] 형 변환

by somida 2022. 10. 23.

형 변환

변수 또는 상수 타입을 다른 타입으로 변환하는 것

  • 기본형 중 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

댓글