Math.round(Long.MAX_VALUE+1) дает Integer.MIN_VALUE?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Math.round(Long.MAX_VALUE+1) дает Integer.MIN_VALUE?

Сообщение Anonymous »

Разве обычно, когда мы включаем два числовых типа данных в одно выражение, тот, у которого меньше битов, преобразуется в тот, у которого больше битов? Например, если у нас есть: Integer.MAX_VALUE+0.6, оно преобразуется в двойное.
Я попробовал

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

Math.round(Long.MAX_VALUE+1)
и это дает мне Integer.MIN_VALUE; Это означает, что Long.MAX_VALUE преобразуется в Integer.MAX_VALUE, а затем произошло переполнение. Таким образом, в основном тип данных long превращается в int. Хотя даже параметр Math.round по определению является двойным. Таким образом, Integer в данном случае даже не является случаем по умолчанию. Я не знаю, в чем я ошибаюсь.

Подробнее здесь: https://stackoverflow.com/questions/788 ... -min-value
Ответить

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

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

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

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

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