blues_log
article thumbnail
Published 2023. 5. 1. 21:34
[Java] 형 변환 Java/Java 정리

형 변환

형변환에는 자동 형 변환과 명시적 형 변환이 있다.

 

자동 형 변환

자동 형변환은 담을 수 있는 데이터형이 담을 데이터형보다 큰 경우 Java에서 자동적으로 데이터형을 변경해주는 것을 말한다. 즉, Java에서는 표현범위가 좁은 데이터 타입에서 표현범위가 넓은 데이터 타입으로의 변환은 자동적으로 변환된다.

예를 들어, 다음 코드를 보면

double b = 1; //실행결과 : 1.0

여기서 'double'는 실수를 담고 있는 데이터형이다. 1은 정수(integer)이다. 여기서 실수는 정수보다 큰 데이터형이므로 Java에서 자동적으로 실수형으로 데이터를 변환시켜준 것이다. 따라서 실행결과는 데이터형이 바뀐 1.0이 된다.

 

반면에, 

int b = 1.0; //실행결과 : error

정수는 실수보다 작은 데이터형이므로 Java에서는 자동적으로 형변환을 시켜주지 않고, 에러를 발생시킨다.

이것을 정리하면 다음과 같다.

  • 표현 범위가 넓은 데이터 타입을 사용하면 데이터의 손실이 일어나지 않으므로 자동적으로 형변환을 해준다.
  • 표현 범위가 좁은 데이터 타입을 사용하면 데이터의 손실이 일어날 수 있으므로 자동적으로 형변환을 해주지 않고      에러가 일어난다.

자동적으로 데이터의 형을 변환 시켜주는 규칙은 다음과 같다.


명시적 형 변환

위의 에러가 나는 경우에는 명시적으로 형변환을 해야한다. 가장 기본적인 방법은 아래 두 가지이다.

double b = 1.0;

int b = (int) 1.0; //실행결과 : 1

첫째는 변수가 담고 있는 데이터형을 담고자하는 데이터의 타입과 일치시키게 바꾸는 것이다.

둘째는 담고자하는 데이터 앞에 ()안에 변수의 데이터 형을 적는 것이다.

 

 

참고로, 실수에서 정수로 데이터를 변환하면 소수점이 전부 다 날라간다.

 


타입 간의 변환방법 (명시적 형 변환)

타입 간의 변환은 프로그램에서 자주 사용되므로 반드시 기억해둘 필요가 있다.

 

 1) 숫자를 문자로 변환 ▷ 숫자에 '0'을 더한다.

System.out.println((char)(3+'0')) // 3(문자)

 

 2) 문자를 숫자로 변환 ▷ 문자에서 '0'을 뺀다.

System.out.println('3'-'0') // 3(숫자)

 

 3) 숫자를 문자열로 변환 ▷ 숫자에 빈 문자열("")을 더한다.

System.out.println(3 + "") // 3(문자열)

 

 4) 문자열을 숫자로 변환 ▷ Integer.parseInt() , Double.parseDouble()을 사용한다.

Integer.parseInt("3") // 3(integer)
Double.parseDouble("3.14") // 3.14(real number)

 

 5) 문자열을 문자로 변환 ▷ charAt(0)을 사용한다.

"3".charAt(0) // '3'

 

 6) 문자를 문자열로 변환 ▷ 빈 문자열("")을 더한다.

'3' + "" // "3"

참고

https://opentutorials.org/module/516/5330

Java의 정석 - 기초편

 

'Java > Java 정리' 카테고리의 다른 글

[Java] 조건문 - switch 문  (0) 2023.05.04
[Java] 조건문 - if 문  (0) 2023.05.03
[Java] 패키지(package)  (0) 2023.04.26
[Java] 연산자  (0) 2023.04.13
[Java] 변수, 기본형과 참조형  (0) 2023.04.12