1. public static void main(String[] args)
2. {
3. Character s=1;
4. Float f=1;
5. }
두 라인 3과 4는 래퍼 클래스를 가지고 컴파일러는 Character
에 1
변환 autoboxing
을 수행하지만 컴파일러는 Float
동일한 1
을 변환 할 수 없습니다. 왜?오토 박싱 - 프로그래밍 개념
1. public static void main(String[] args)
2. {
3. Character s=1;
4. Float f=1;
5. }
두 라인 3과 4는 래퍼 클래스를 가지고 컴파일러는 Character
에 1
변환 autoboxing
을 수행하지만 컴파일러는 Float
동일한 1
을 변환 할 수 없습니다. 왜?오토 박싱 - 프로그래밍 개념
Float f=1f;
또는 Float f=1F
과 같은 숫자 끝에 'f
'또는 'F
'을 추가해야하는 부동 소수점 숫자입니다.
기본적으로 double
이 될 것이기 때문입니다. 플롯 번호를 F
또는 f
으로 끝내야 float
이됩니다. 예 :Float f = 1f;
§JLS 3.10.2 : 그것은가 ASCII 문자 F 또는 F 접미사 경우
부동 소수점 리터럴 float 형이고; 그렇지 않으면 그 타입은 double이며 ASCII 문자 D 또는 d (§4.2.3)를 접미사로 선택적으로 붙일 수 있습니다.
int intt가 float으로 확장 될 수없는 이유는 여기에 대한 대답이 아닙니다. int는 char로 축소 될 수 있습니다. 이것을 시도하십시오 : Character s = Character.valueOf (1); Float f = Float.valueOf (1); – Mikhail