반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 조건문
- openChallenge
- 크기조정
- 다음주소API
- 테이블 생성
- 스타일 시트
- 42000
- rest api
- 회원가입페이지
- API
- restAPI
- textarea
- 변수
- 인스턴스
- 로그인
- 반복문
- 셀렉터
- 별찍기
- 주소
- 로그아웃
- 카카오 로그인
- 자바
- 연산자 우선순위
- 유효성검사
- 카카오로그인
- jsp
- span width 설정
- 없애기
- 변경
- id 개별 부여
Archives
- Today
- Total
뚜벅이 한걸음
형 변환 본문
반응형
평소에 숫자를 계산할 때 3+ 3.14=6.14로 간단하게 계산 할 수 있다.
하지만 컴퓨터 내부에서는 정수와 실수가 표현되는 방식이 다르다.
따라서 연산을 바로 실행 할 수 없고 하나의 자료형으로 통일한 후 연산해야한다.
1) 묵시적 형 변환
① 바이트 크기가 작은 자료형에서 큰 자료형으로 대입하는 경우
byte i = 10;
int m = i; //byte 형 변수 1형 값을 int 형 변수 m에 대입함
② 덜 정밀한 자료형에서 더 정밀한 자료형으로 대입하는 경우
int iNum = 20;
float fNum = iNum;
두 변수의 크기가 같은 4바이트지만
float형이 더 정밀하게 데이터를 표현 할 수 있으므로 실수형인 float형으로 변환된다.
③ 연산중에 자동 변환하는 경우
int iNum = 20;
float fNum =iNum;
double dNum;
dNum = fNum + iNum;
fNum + iNumd에서 먼저 int 형이 float형으로 변환되고 , 두변수를 더한 값이 double형으로 대입된다.
2) 명시적 형 변환 (묵시적 형 변환과 반대)
① 바이트 크기가 큰 자료형에서 작은 자료형으로 대입하는 경우
강제형 변환 : 강제로 형을 바꿔주기 위해서 바꿀 형을 괄호로 써써 명시한다.
int iNum = 10;
byte bNum = (byte)iNum;
지금은 변수값이 10이지만 200을 byte형으로 변경하려고하면 byte가 담을 수있는 값을 넘어가기 때문에 자료의 손실이 일어날 수있다.
② 더 정밀한 자료형에서 덜 정밀한 자료형으로 대입하는경우
:실수에서 정수로 값이 대입되는경우 소수점이하 부분이 생략이되면서 덜 정밀한 자료가 된다.
int iNum = 10;
byte bNum = (byte)iNum;
double dNum = 3.14;
int iNum = (int)dNum;
연산 값은 3이 된다.
③ 연산 중 형 변환
double dNum1 = 1.2;
float fNum2 = 0.9f;
int iNum3 = (int)dNum1 + (int)fNum2;
int iNum4 = (int)(dNum1 + fNum2);
System.out.println(iNum3);
System.out.println(iNum4);
두 연산 값의 결과는 1과 2로 다르게 나오게된다.
우리가 사칙연산 할때 괄호먼저 계산해주는 것을 생각한다면 쉽게 이해 할 수 있다.
오늘도 화이팅^_^!
반응형