Как найти и обрабатывать двоичный / численный переполнение в J2ME

StackOverflow https://stackoverflow.com/questions/3736803

Вопрос

Я создаю единую преобразовательскую программу, которая использует библиотеку MathFP. Обычно преобразование единицы происходит в формуле:

U1 (Unit1) * k (константа) = U2 (UNIT2)

Я хочу быть в состоянии обнаружить, когда int int имеет / подними? Как я могу обнаружить, когда это произошло и изящно справится с проблемой. В идеале я бы искал общий раствор, так как я хотел бы обрабатывать переполнение при примитивах типа длинного:

Единственная идея у меня есть:

int largeOne = bigNum;
int largeTwo = anotherbigNum;

//complete math operation
long l = largeOne * largeTwo;
if(l > Integer.MAX_SIZE){
    System.out.println("Overflow");
    //handle error
}

Должен ли я использовать другой примитивный тип данных для этих преобразований, таких как двойной?

Заранее спасибо за вашу помощь

Это было полезно?

Решение

Вы можете проверить, является ли результатом отрицательным или положительным (в зависимости от знаков Largetwo), но это будет догадка работы.


Я нашел другой способ, вы могли вручную размножаться вашими двумя номерами с алгоритмом.


Ресурсы :

На той же теме:

Другие советы

Вы можете переключиться на использование BigDecimal Class, который имеет гораздо лучшую обработку для переполнения / поднятия, чем примитивы INT / Lonv в Java. Значения INT / Long - это особый случай, не являющийся классами и в результате пропустить преимущества OOP.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top