2013-06-19 2 views
-8

В примитивном типе на языке Java, как будет выглядеть следующий код?Тип литья int и double

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

И может ли двойная переменная быть отлита в int, если double - 64 бит, а int - 32 бит?

+9

_ «Что будет отображаться в следующем коде?» _ Почему бы вам не попробовать себя? И он ничего не проявит, поскольку он не компилируется. –

+0

, пожалуйста, задайте свой вопрос ясно –

+0

Почему он не компилируется? –

ответ

2

Чтобы ответить на ваш последний вопрос, который интересен (на другие части вопроса лучше всего ответить отладчик), двойной, который слишком велик для int, будет использоваться в максимально возможном int; аналогично для двойника, который слишком мал для int, будет отбрасываться до наименьшего возможного int.

См http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#d5e4334

Обратите внимание, что INT определен в Java, как 32 бит (для вечности) и двойной 64 бит (для вечности).

0

будет скомпилировано:

float a = 1.11f; 
int b = (int) a; 
int c = (int)a; 
System.out.println(a + " " + b + " " + c); 
  1. Чтобы инициализировать float переменные, вы должны добавить f в конце числового значения.
  2. float, как double, не может быть отнесен к типу int в случае, если разные размеры бит.
  3. В следующий раз, пожалуйста, используйте google.com, чтобы найти ответы.
Смежные вопросы