2013-06-19 5 views
-8

Java의 기본 유형 캐스팅에서 다음 코드는 무엇을 나타낼까요?유형 캐스팅 int 및 double

float a = 1.11; 
int b = a; 
int c = (int)a; 
System.out.println(a + " " + b + " " + c); 

이중 변수가 64 비트이고 int가 32 비트이면 double 변수를 int로 형변환 할 수 있습니까?

+9

_ "다음 코드는 무엇을 보여줄까요?"_ 스스로 시도하지 않으시겠습니까? 그리고 컴파일되지 않았기 때문에 아무 것도 보여주지 않습니다. –

+0

질문을 명확하게 질문하십시오 –

+0

왜 컴파일되지 않습니까? –

답변

2

재미있는 마지막 질문에 대답하려면 (질문의 다른 부분은 디버거가 가장 잘 대답합니다) int에 비해 너무 큰 double은 가능한 가장 큰 int로 변환됩니다. 마찬가지로 int가 너무 작 으면 int가 가장 작은 int로 변환됩니다.

는 INT는 (영원히) 32 비트 자바 정의되어 http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#d5e4334

- 참고 및 더블 (영원히) 64 비트이다.

0

이 컴파일 :

float a = 1.11f; 
int b = (int) a; 
int c = (int)a; 
System.out.println(a + " " + b + " " + c); 
  1. float 변수를 초기화하려면, 당신은 수치의 끝에서 f을 추가해야합니다.
  2. floatdouble과 같이 다른 비트 크기 인 경우에는 유형으로 변환 할 수 없습니다.
  3. 다음 번에 google.com을 사용하여 답변을 찾으십시오.