本文介紹了Java雙對象存儲到小數點后兩位的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
能否將java.lang.Double存儲到小數點后兩位
例如:0.2
變為0.20
我將代碼修改為以下代碼
Double correlation = getSomeDoubleValue(label, key, date);
DecimalFormat df = new DecimalFormat("0.00");
correlation = Double.valueOf(df.format(correlation));
但當函數getSomeDoubleValue()
返回0.2
時,df.format(correlation)
使其0.20
,但當我需要java.lang.Double
時,Double.valueOf("0.20")
返回0.2
。
我不確定如何實現這一點,或者它是否完全可以實現。
推薦答案
浮點數,如double
和float
實際上是數學表達式,因此不準確。
如果您想要更精確的數字,應使用BigDecimal
類,它是一個任意精度的十進制數。
您可以使用setScale
的一個setScale
函數設置BigDecimal
存儲的位數,該函數還可以用于設置在對BigDecimal
進行數學運算時使用的舍入模式。
請注意,BigDecimal
是一個對象類型,因此您需要使用其方法對其進行數學運算(.add
,.subtract
,.multiply
,.divide
)。
BigDecimal
具有用于從double
、long
或int
創建BigDecimal
的構造函數。
這篇關于Java雙對象存儲到小數點后兩位的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,