실수 : float / double
double:a =3.3F;
3.3F; 라는 상수를 a 변수에 대입하는 순간 자바가 F가 붙어있어도 더블형으로 자동으로 암시적으로 형변환이 되는것이다.
자동으로 형변환 해주는 이유
더 많은 정보를 수용할 수 있도록하기 위해
float:a =3.3;
3.3;더블형의 데이터를 float에 넣는 코드
but 오류 발생 why?
더블이 더 많은 데이터를 수용할 수 있기 때문이다.
자동 형 변환의 원칙은 표현범위가 좁은 데이터 타입에서 넓은 데이터 타입으로의 변환만 허용된다는 것이다.
(정수)byte -> short / char -> int -> long -> (실수)float -> double
int a = 3;
float b = 1.0F;
double c = a+b ;
수동으로 직접 형변환 하는 것, Explic Conversion
float a =100.0;
-> 정보 손실 때문에 자동형변환이 되지 않음
int b =100.0F;
-> int보다 float이 넓은 범위기 때문에 정보손실의 우려로 자동 형변환이 되지 않는다.
하지만 명시적으로 변환할 수 있는 방법은 아래와 같다.
float a = (float)100.0;
int b = (int)100.0F;