Как разделить два больших целых числа в Java?

Я хочу разделить два больших целых числа,

a = 23546654
b = 24979799

и получить результат в два раза.


person DevAndroid    schedule 04.01.2012    source источник
comment
Вы можете использовать double для переменных a и b, что решит ваши проблемы.   -  person Marcelo    schedule 04.01.2012
comment
@Marcelo: следует упомянуть возможную потерю точности   -  person Mitch Wheat    schedule 04.01.2012
comment
Не согласен. Не будет работать с объектами BigInteger, и я думаю, это то, что имел в виду автор.   -  person ŁukaszBachman    schedule 04.01.2012
comment
возможный дубликат Java: разделение на 2 целых числа дает целое число?   -  person Thomas Clayson    schedule 04.01.2012
comment
@Mitch Я просто оставил комментарий, потому что хотел помочь, но вопрос, похоже, не требует достаточно исследований.   -  person Marcelo    schedule 04.01.2012


Ответы (3)


Пытаться

double x = ((double) a) / ((double) b)

который сначала преобразует ваши int в двойные, а затем выполняет деление. Если у вас есть BigIntegers (что указывает ваш тег), вы можете использовать _ 3_, чтобы извлечь двойное значение.

person Howard    schedule 04.01.2012
comment
На самом деле, double x = a / double (b) было бы достаточно. - person Jaco Van Niekerk; 04.01.2012

Это просто int, а не BigInteger.

Все что тебе нужно это

double ratio = (double) a / b;
person Peter Lawrey    schedule 04.01.2012

В классе BigInteger есть метод divide.

BigInteger result = a.divide(b);
person Abhishek bhutra    schedule 04.01.2012
comment
Еще лучше был бы метод divAndRemainder, который поможет OP получить число с двойной / с плавающей запятой. docs.oracle.com/javase/1.4.2/docs/api/java/math/ - person Thomas Clayson; 04.01.2012