Java BigInteger divide()方法不起作用?

Java BigInteger divide()方法不起作用?,java,biginteger,Java,Biginteger,我正在除以2biginger值 N = 9440056782685472448790983739834832785827768777249804302814308027414135716898232844915103921294054418075320625088217221562302526369941467936783339885875544042382838016236813295110394693048899002782798993343218195996883603536964105

我正在除以2
biginger

 N = 94400567826854724487909837398348327858277687772498043028143080274141357168982328449151039212940544180753206250882172215623025263699414679367833398858755440423828380162368132951103946930488990027827989933432181959968836035369641054955336867327681756681532771354933952141599581827698618739724580124555641633861

 e = 44598251142417535121365176389097472886004547620498587196637028250785621416609954924107228171779826812564450558386070863338405090708203920066925426522584172770629487602232360693706521107911895310319989921169318202224097739016252544913819802671755649536088117809831381940146419602124919706024152810967126830967
我正在使用此代码来执行此操作

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

它打印0。除法有问题吗?

您的
e
值小于
N
值,并且您正在执行整数运算,因此您将得到一个值0


如果您想要非整数除法,请改用
BigDecimal

您可能以错误的顺序对它们进行除法,这对我很有用:

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

和产量<代码>2(四舍五入9/4,因为
biginger
仅用于整数值)。

您将一个数字x除以一个大约为2x的数字。这意味着结果将介于0和1之间。由于它是一个大的整数,因此结果将是一个大的整数,即0


如果需要十进制值,请改用
BigDecimal

您希望得到什么结果?这相当于4/9,在整数算术中也是0