2012-06-19 22 views
0

您好所有,如何輸出小數點後20位的Double?

Double d = 1.000000000000000000000000000000001; 
     System.out.println(d); 

上面的代碼打印1.0,但我想d來存儲整個值。 想要的輸出是1.00000000000000000000000000001001

我關心的是如何將這個值存儲在雙倍? 有沒有什麼辦法可以增加double可以存儲的小數? 請指導我

+1

'double'僅具有精度15-16位,所以你不能存儲這樣一個號碼。你有真正的用例嗎?這僅僅是理論上的嗎? –

回答

4

您需要使用BigDecimal

實施例:

BigDecimal test = new BigDecimal("1.000000000000000000000000000000001"); 
System.out.println(test); 

,同樣可以不使用doubledouble具有64個比特表示的原因。

+2

犯錯。它打印'1'。應該在引號中。 – st0le

+0

哦,非常感謝你的配偶。 – JackAss

+0

@JBNizet感謝您的編輯。 –

相關問題