Задать вопрос
@WannaCreative

Почему выдает как ошибку?

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        long l = 2147483648;
        int r = (int) l;
        System.out.println(r);
    }
}


Ведь long = - 9*1018 .. 9*1018
  • Вопрос задан
  • 187 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Java-разработчик
    10 месяцев
    Далее
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Нетология
    Java-разработчик с нуля
    12 месяцев
    Далее
Решения вопроса 2
Sanan07
@Sanan07
Писатель-прозаик
Потому, что по-умолчанию этот литерал воспринимается как int. Поэтому надо писать так
long l = 2147483648L;
int r = (int) l;
System.out.println(r);

И все будет ОК.
Ответ написан
Комментировать
long l = 2147483648;

Я подозреваю ты про ошибку в этой строке. Дело в том, что целочисленные захардкоженные значения по умолчанию имеют тип данных int, замени на 2147483648L и будет работать.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы