@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
  • Вопрос задан
  • 186 просмотров
Решения вопроса 2
Sanan07
@Sanan07
Писатель-прозаик
Потому, что по-умолчанию этот литерал воспринимается как int. Поэтому надо писать так
long l = 2147483648L;
int r = (int) l;
System.out.println(r);

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

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

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

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