簡體   English   中英

BigInteger Divor()方法不起作用?

[英]BigInteger divide() method not working?

我正在分割2個BigInteger

 N = 94400567826854724487909837398348327858277687772498043028143080274141357168982328449151039212940544180753206250882172215623025263699414679367833398858755440423828380162368132951103946930488990027827989933432181959968836035369641054955336867327681756681532771354933952141599581827698618739724580124555641633861

 e = 44598251142417535121365176389097472886004547620498587196637028250785621416609954924107228171779826812564450558386070863338405090708203920066925426522584172770629487602232360693706521107911895310319989921169318202224097739016252544913819802671755649536088117809831381940146419602124919706024152810967126830967

我正在使用此代碼來這樣做

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

並顯示0。除法有問題嗎?

您的e值小於您的N值,並且您正在執行整數算術,因此您將獲得0值。

如果要使用非整數除法,請改用BigDecimal

您將數字x除以大約2x的數字。 這意味着結果將在0到1之間。由於它是Big Integer ,結果將是Big Integer ,它將是0。

如果要十進制值,請改用BigDecimal

您可能以錯誤的順序划分了它們,這對我有用:

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

並產生... 2 (由於BigInteger僅用於整數值,所以四舍五入為9/4)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM