2013-12-17 1 views
3
1. public static void main(String[] args) 
2. {   
3. Character s=1; 
4. Float f=1; 
5. } 

두 라인 3과 4는 래퍼 클래스를 가지고 컴파일러는 Character1 변환 autoboxing을 수행하지만 컴파일러는 Float 동일한 1을 변환 할 수 없습니다. 왜?오토 박싱 - 프로그래밍 개념

답변

4

Float f=1f; 또는 Float f=1F과 같은 숫자 끝에 'f'또는 'F'을 추가해야하는 부동 소수점 숫자입니다.

+0

int intt가 float으로 확장 될 수없는 이유는 여기에 대한 대답이 아닙니다. int는 char로 축소 될 수 있습니다. 이것을 시도하십시오 : Character s = Character.valueOf (1); Float f = Float.valueOf (1); – Mikhail

3

기본적으로 double이 될 것이기 때문입니다. 플롯 번호를 F 또는 f으로 끝내야 float이됩니다. 예 :Float f = 1f;

§JLS 3.10.2 : 그것은가 ASCII 문자 F 또는 F 접미사 경우

부동 소수점 리터럴 float 형이고; 그렇지 않으면 그 타입은 double이며 ASCII 문자 D 또는 d (§4.2.3)를 접미사로 선택적으로 붙일 수 있습니다.