2015-05-18 5 views
0

Я хочу ввести W в массив int. Как я могу это сделать? Извините за паршивый вопрос или английский.Преобразование double в int

public void setX (int Y , double W) 
{  
    array[Y] = W; 
} 
+0

Вы потеряете дробную часть. –

ответ

4

Если вы счастливы усечение в сторону 0 - и получить int.MIN_VALUE или int.MAX_VALUE, если значение находится вне диапазона int - вы можете просто бросить:

array[Y] = (int) W; 

Если вы а не доволен этими оговорками, вы должны переоценить свой дизайн - подумайте о том, что вы хотите, чтобы произойти, например если W - 15.25. Если вам нужно сохранить всю исходную информацию, вы должны использовать double[], а не int[].

(Вы также должны пересмотреть свои имена параметров, если это ваши настоящих имен. Читайте на Java именовании.)

+0

Вы можете попробовать округлить значение сначала 'array [Y] = (int) Math.round (W);' –

+0

W будет как 7.5 или что-то с десятичной и не будет округлено. Что мне делать? Пожалуйста посоветуй. Many Thanks –

+0

@WillieHii: Ну, как он не может быть округлен вообще, если ваш массив целых чисел? Что вы хотите, чтобы значение элемента массива было потом? Это не может быть 7.5 ... –

-1

array[Y] следует delcared быть носовыми вы Asign и Y будет меньше размер этого массива.

array[Y] = Integer.valueOf(W + ""); 

Выше линии поможет

+1

Непонятно, на что вы думаете, что это ответ, но он не решает вопрос. –

+0

Прошу прощения за смущение. Я отредактировал его. Спасибо за комментарий – lethanh

+1

Это все еще не скомпилировало бы - какая перегрузка 'Integer.valueOf' вы ожидали бы использовать? –

Смежные вопросы