Продолжительность. Зачем выполнять дополнительную работу, если секунды отрицательны?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Продолжительность. Зачем выполнять дополнительную работу, если секунды отрицательны?

Сообщение Anonymous »


Это метод toNanos в классе Duration

public long toNanos() { длинные tempSeconds = секунды; длинный tempNanos = nanos; // TODO: Меня это смущает если (tempSeconds < 0) { // изменяем секунды и значение nano на // обрабатываем случай Long.MIN_VALUE tempSeconds = tempSeconds + 1; tempNanos = tempNanos - NANOS_PER_SECOND; } длинный totalNanos = Math.multiplyExact(tempSeconds, NANOS_PER_SECOND); totalNanos = Math.addExact(totalNanos, tempNanos); вернуть тоталНанос; } Я не мог понять, зачем выполнять дополнительную работу, если секунды отрицательны.
Максимальное количество положительных чисел – 2^63-1, а минимальное количество отрицательных чисел — 2^63, похоже, что оно передает -2^63s,- от 1ns до -2^63+1s,1000_000_000-1ns, но в конечном итоге он должен участвовать в вычислении. На мой взгляд, это бессмысленно, потому что Math.multiplyExact и Math.addExact выдадут исключение при переполнении чисел, оно не изменится независимо от того, существовало ли решение или нет
Ответить

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

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

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

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

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