2012-11-07 2 views
0

나는 그렇게BigInteger divide() 메서드가 작동하지 않습니까?

System.out.println(e.divide(N)); 

을 수행하는이 코드를 사용하고 있으며 분할 방법에 문제가 0 인쇄이 개 BigInteger

N = 94400567826854724487909837398348327858277687772498043028143080274141357168982328449151039212940544180753206250882172215623025263699414679367833398858755440423828380162368132951103946930488990027827989933432181959968836035369641054955336867327681756681532771354933952141599581827698618739724580124555641633861 

e = 44598251142417535121365176389097472886004547620498587196637028250785621416609954924107228171779826812564450558386070863338405090708203920066925426522584172770629487602232360693706521107911895310319989921169318202224097739016252544913819802671755649536088117809831381940146419602124919706024152810967126830967 

나누어입니까?

+4

결과로 무엇을 기대 했습니까? 이것은 4/9에 해당하며 정수 연산에서도 0입니다. –

답변

7

귀하의 e 값은 N 값보다 작은 경우, 당신은 당신이 아닌 정수 나누기를 원하는 경우에 따라서 대신 BigDecimal를 사용, 0

의 값을 얻을 것이다, 정수 연산을 수행하고 있습니다. 당신은 아마 잘못된 순서로 분할된다

0

이 나를 위해 작동합니다

new BigInteger("94400567826854724487909837398348327858277687772498043028143080274141357168982328449151039212940544180753206250882172215623025263699414679367833398858755440423828380162368132951103946930488990027827989933432181959968836035369641054955336867327681756681532771354933952141599581827698618739724580124555641633861") 
     .divide(new BigInteger("44598251142417535121365176389097472886004547620498587196637028250785621416609954924107228171779826812564450558386070863338405090708203920066925426522584172770629487602232360693706521107911895310319989921169318202224097739016252544913819802671755649536088117809831381940146419602124919706024152810967126830967")) 

및 수율 ... 2은 (BigInteger 이후 9/4는 정수 값에만 사용됩니다 반올림).

2

숫자 x를 약 2x로 나누고 있습니다. 즉, 빅 정수 때문에 그 결과, 결과는 대신 BigDecimal를 사용하면 소수점 값을 원하는 경우 0

있을 것 큰 정수 될 것 0과 1이 될 것을 의미합니다.

관련 문제