本文介紹了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雙對象存儲到小數點后兩位的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,






