BigDecimal的構造函數
這周在對監控系統進行代碼復查時發現了一個問題,就是有關于BigDecimal的構造問題,BigDecimal主要是用于精確計算的,所以在對數值計算要求不是很嚴格的時候,用double就行了。如何構造一個BigDecimal的數值呢?關鍵要看是個什么樣的數值了,如果是想將一個有小數的數字轉換為BigDecimal的話,如“3.1”,那么最好用BigDecimal(String),即new BigDecimal("3.1"),而不能用new BigDecimal(3.1),因為這樣會導致實際得出的值不等于3.1,jdk中也明確說明了不推薦使用new BigDecimal(Double),并且new BigDecimal(String)的效率比new BigDecimal(Double)要高,還有一個方法就是BigDecimal(BigInteger,int),可以使用new BigDecimal(BigInteger.valueOf(31),1)來得到3.1,它的效率也很高。在jdk6.0中加入了BigDecimal(int)的構造函數,所以當被轉換的數值是整數時,也可以用它。
posted on 2008-05-28 21:16 yaoleiroyal 閱讀(2000) 評論(0) 編輯 收藏 所屬分類: java