我試圖沿着Math.Log10
方法使用BigInteger
值。計算BigInteger中的小數位數
final BigInteger answerNo = fact;
final int digits = 1 + (int)Math.floor(Math.log10(answerNo));
不幸的是,編譯器說:不兼容的類型。
如果我將int
s更改爲BigInteger
s,它仍然不喜歡它。
我試圖沿着Math.Log10
方法使用BigInteger
值。計算BigInteger中的小數位數
final BigInteger answerNo = fact;
final int digits = 1 + (int)Math.floor(Math.log10(answerNo));
不幸的是,編譯器說:不兼容的類型。
如果我將int
s更改爲BigInteger
s,它仍然不喜歡它。
int
到BigInteger
- 你可以寫:final BigInteger answerNo = BigInteger.valueOf(fact);
Mat.log10
需要一個double
,不是BigInteger
如果你不介意的精度損失,你可以簡單地使用雙打:
final int digits = 1 + (int)Math.floor(Math.log10(fact));
如果你關心精度,你將需要手動計算日誌。
我已經改變了這個問題的標題,使之符合的問題,並接受的答案的信息。顯然,數字的計數並不像執行實際的10對數那樣精確。 –