=== 데이터형 변환하기 ===
1. 자동 형변환(묵시적 형변환)
--> 데이터타입의 크기가 작은 것에서 크기가 큰쪽으로는 자동적으로 형변환이 발생된다.
실수를 정수로 바꿀 때는 강제적으로 형변환된다. 소수부는 무조건 절삭을 해버리고 정수만 나온다. ex) 정수 = (정수)실수
** 강제 형변환할때 값이 달라지는 것은 아니다. 값은 그대로 남아있으나 강제 형변환에 의해 절삭만 되는 것. 그 자체의 값은 남아있음(자바에서 변수는 직접 대입해서 값을 변경하지 않는 이상 변경되지 않음)
byte no1 = 100; // byte => 1byte -128 ~ 127
short sh = no1; // short => 2byte -32,768 ~ 32,767
위 코드를 컴퓨터적 시선으로 보면 short sh = (short)no1; 와 같음. 자동적으로 형변환 하기 때문에 (short)를 넣을 필요가 없다.
double db2 = 1.23456789;
System.out.println("db2 => " + db2);
float ft2 = (float)db2;
System.out.println("ft2 => " + ft2);
short sh2 = (short)in2;
System.out.println("sh2 => " + sh2);
in2 = 50000;
sh2 = (short)in2;
System.out.println("sh2 => " + sh2);
// sh2 => -15536 엉뚱한 값이 나옴.
long ln2 = 3000000000L; // long 8byte
float ft3 = ln2; // 실수와 정수는 실수가 더 크기 때문에 자동 형변환된다.
// 위의 것은 float ft3 = (float)ln2; 와 같은 것이다.
System.out.println("ln2 => ln2" + ln2);
//ln2 => 3000000000
System.out.println("ft3 => ft3" + ft3);
//ft3 => 3.0E9 는 3.0 * 10의9승이다.
double db3 = 123.98765;
int in3 = (int)db3;
System.out.println("db3 => db3" + db3); // db3 => 123.98765
System.out.println("in3 => in3" + in3); // in3 => 123