2013-07-31 24 views
9

無論如何將double的值轉換爲BigInteger有無論如何將Double轉換爲BigInteger?

double doubleValue = 64654679846513164.2; 
BigInteger bigInteger = (BigInteger) doubleValue; 

我嘗試投它,但它沒有奏效。

+0

我猜你不明白一個整數和一個(浮點)之間的差值的兩倍。 –

+0

或轉換和鑄造之間。 – EJP

+1

也許他想要一個包含64654679846513164的BigInteger –

回答

17

BigInteger用於保存任意精度整數,而不是小數。您可以使用BigDecimal類來保持雙倍。

BigDecimal k = BigDecimal.valueOf(doublevalue); 

通常,您不能將一個Java原始類型轉換爲另一個類。我知道的例外情況是擴展了Number的類,例如LongInteger包裝類,它們允許您將整型值轉換爲整型,等等。

+0

如果你解釋爲什麼類型轉換不起作用,這對OP有幫助。 –

+1

@LuiggiMendoza我加了一個關於演員的想法,但不知道它是否會回答OP的問題,因爲他似乎對更一般的東西感到困惑。只是我的觀點。 – Kon

-1

喲不能將Double轉換爲BigInteger,因爲這兩個類是從Number類延伸的對等類。你可能會被轉換爲數字,然後可以進一步轉換。

29

您可以將雙轉換成BigDecimal然後BigInteger

BigInteger k = BigDecimal.valueOf(doublevalue).toBigInteger(); 
+2

如果你實際上只想把double的整數部分存儲在BigInteger中,這肯定是最好的答案? –

相關問題