티스토리 뷰
형 변환이란?
저번 글에서 변수에 대해 설명을 하였다 변수를 만들 때 자료형이라는 것이 쓰였는데 자료형을 다른 자료형으로 바꾸는 것을 의미한다. 자료형을 바꾸는 이유는 연산을 할 때 같은 자료형 끼리 연산을 하기 때문에 상황에 따라 형 변환이 필요할 때가 있다.
int num1 = 6;
double d = 3.14;
System.out.println("num1 + d = "+ (num1 + d));
num1 + d = 9.14
위 코드를 보면 의문점이 생길 것이다. 같은 자료형 끼리만 연산이 가능한 것으로 알고 있는데 오류가 안 나고 연산이 잘 될까?
그 이유는 자바에서는 자동으로 자료형을 변환해준다. 크기가 작은 자료형이 크기가 큰 자료형으로 자동으로 연산이 이루어지기 때문이다. 크기가 작은 int(4byte)가 크기가 큰 double(8byte)로 자동으로 변환된 것이다.
형 변환
일반적인 형 변환은 숫자를 담을 수 있는 기본 자료형에서만 가능하다.
byte, short, int, long, float, double가 있고 문자형인 char도 문자형인 동시에 정수형이기도 하기 때문에 형 변환을 할 수 있다.
int num = 23;
double change_num = (double)num;
System.out.println("num : " + num);
System.out.println(("change_num : " + change_num));
num : 23
change_num : 23.0
int형을 double형으로 변환하게 되면 int형 데이터에. 0 이 찍히게 된다.
double d = 3.14;
int change_d = (int)d;
System.out.println("d : " + d);
System.out.println("change_d : " + change_d);
d : 3.14
change_d : 3
double형을 int 형으로 변환하게 된다면 소수점 뒤 숫자들은 삭제가 된다. 크기가 큰 자료형에서 크기가 작은 자료형으로 변환하는 것이라 데이터 손실이 나는 것이다. 위 코드와 결과만 본다면 반올림이 되는 거 아닌가?라고 생각할 수도 있지만 반올림이 되는 것이 아니라 삭제가 되는 것이다. 코딩을 할 때 주의해서 사용하자.
기본 자료형 크기순
byte(1바이트) > short, char(2바이트) > int(4바이트) > long(8바이트) > float(4바이트) > doube(8바이트)
크기가 작은 것에서 큰 것으로 형 변환이 이루어질 때는 손실이 없고 큰 데이터에서 작은 데이터로 형 변환을 할 때는 손실이 난다.
String to Int
문자열에서 정수형으로는 평범한 방법으로는 불가능하다.
String str = "123";
int num = (int)str; //오류
이런 식으로 하게 된다면 오류가 날것이다. 이때는 Integer.parseInt(문자열) 이 문법을 써야 한다.
String str = "123";
int num = Integer.parseInt(str);
System.out.println(num + 100);
223
여기서 문자열이 정수형으로 변한 것을 확인할 수 있다.
만약 문자열과 100을 더하는 거였으면 123100 이 나와야 하지만 정상적으로 더하기가 된 것을 보면 정수형으로 잘 변한 것을 확인할 수 있다.
[JAVA] 연산자
연산자란? - 연산이랑 데이터를 처리하고 결과를 산출하는 작업 - 연산은 항(피연산자)과 연산자로 이루어짐 - 항은 연산에 사용되는 값을 의미하며, 연산자는 기호를 의미 - 항과 연산자를 이용
treebomb-code.tistory.com
'Java' 카테고리의 다른 글
| [JAVA] 제어문(if, switch) (0) | 2023.10.24 |
|---|---|
| [JAVA] 연산자 (2) | 2023.10.16 |
| [Java] 변수 (0) | 2023.10.02 |
| [JAVA] 자바 출력문 print(), printf(), println() (0) | 2023.09.25 |
| [JAVA] JDK 및 eclipse 다운로드 (0) | 2023.09.18 |
- Total
- Today
- Yesterday
- 자바 this()
- 자바 클래스 설명
- 자바 배열 내림차순 정렬
- 자바기초
- 변수 생명주기
- 자바 Arrays
- getter setter 쉽게 만들기
- 생성자 위치
- 코딩
- 자바 세터
- 자바 배열 생성
- 자료형
- java overloading
- 모바일프레임워크
- 자바 생명주기
- 생성자 호출 위치
- 자바 클래스 이해
- 게터세터 쉽게 만들기
- 생성자 쉽게 만들기
- 자바
- 생성자를 써야하는 이유
- 자바 기초
- 자바 배열 초기화
- Java
- java기초
- 자바 배열
- 코린이
- 생성자란
- 자바 게터
- 배열 내림차순
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |