TypeCasting Math.Pow (2,31) до int не обертывается, как и ожидалось?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 TypeCasting Math.Pow (2,31) до int не обертывается, как и ожидалось?

Сообщение Anonymous »

Я пытался проверить свойство wrap ought, когда значение больше, чем контейнер, который может его удерживать. < /p>

Код: Выделить всё

public class Main {
public static void main(String[] args) {
double value = Math.pow(2,31);
System.out.println("Raw double: " + value);
System.out.println("After casting to int: " + (int)value);
System.out.println("Integer.MAX_VALUE: " + Integer.MAX_VALUE);
}
}
< /code>
Я сделал это в jshell-версия 20.0.2, Java 20.0.2 2023-07-18 и программа < /p>
Вывод, который я ожидал, так как значение должно обернуться: < /p>
Raw double: 2.147483648E9
After casting to int: -2147483648
Integer.MAX_VALUE: 2147483647
< /code>
Вывод, который я получил: < /p>
Raw double: 2.147483648E9
After casting to int: 2147483647
Integer.MAX_VALUE: 2147483647
Я также попробовал оператор смены 1L

Подробнее здесь: https://stackoverflow.com/questions/797 ... s-expected
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»