j = ++;
j = i++;
double d = 85.4;
int score = (int)d;
| 변환 | 수식 | 결과 |
|---|---|---|
| int → char | (char) 65 | 'A' |
| char → int | (int) 'A' | 65 |
| float → int | (int) 1.6f | 1 |
| int → float | (float) 10 | 10.0f |
float f = 1234; // int 타입의 값을 float 타입의 변수에 저장
float f = (float)1234; // 컴파일러에 의해 이렇게 자동으로 바뀜
int i = 3.14f // 이건 에러가 뜸 float이 int의 범위보다 크기 때문에 (값 손실 발생)
int i = (int)3.14f; // 이렇게 직접 변환을 시켜줘야 함 결과는 3
// int -> byte
byte b = 10;
int i = b; // 생략 가능: 단위가 더 작은 byte를 더 큰 int에 넣는 것이므로
// byte -> int
int i2 = 300;
byte b2 = (byte)i2; // 생략 불가: 직접 형 변환을 해주어야 함
// 예외
byte b = 100; // int형은 byte보다 더 큰데 더 큰 단위에서 작은 단위로 형 변환이 가능하다 int는 byte보다 크지만 100은 byte의 범위 (-128~127)에 속하기 때문
byte b = 1000; // 이런 경우는 byte 타입의 범위를 벗어나서 에러가 발생함