您好所有,如何輸出小數點後20位的Double?
Double d = 1.000000000000000000000000000000001;
System.out.println(d);
上面的代碼打印1.0,但我想d來存儲整個值。 想要的輸出是1.00000000000000000000000000001001
我關心的是如何將這個值存儲在雙倍? 有沒有什麼辦法可以增加double可以存儲的小數? 請指導我
您好所有,如何輸出小數點後20位的Double?
Double d = 1.000000000000000000000000000000001;
System.out.println(d);
上面的代碼打印1.0,但我想d來存儲整個值。 想要的輸出是1.00000000000000000000000000001001
我關心的是如何將這個值存儲在雙倍? 有沒有什麼辦法可以增加double可以存儲的小數? 請指導我
您需要使用BigDecimal。
實施例:
BigDecimal test = new BigDecimal("1.000000000000000000000000000000001");
System.out.println(test);
,同樣可以不使用double
是double
具有64個比特表示的原因。
http://en.wikipedia.org/wiki/Double-precision_floating-point_format
按照上述連桿雙具有總共64 53小數位,其中16位小數可以存儲
'double'僅具有精度15-16位,所以你不能存儲這樣一個號碼。你有真正的用例嗎?這僅僅是理論上的嗎? –