Java 使用BigDecimal類處理高精度計算
阿新 • • 發佈:2018-02-06
positive urn 使用 println highlight 轉換 posit exception val
Java在java.math包中提供的API類BigDecimal,用來對超過16位有效位的數進行精確的運算。雙精度浮點型變量double可以處理16位有效數,但在實際應用中,可能需要對更大或者更小的數進行運算和處理。一般情況下,對於那些不需要準確計算精度的數字,我們可以直接使用Float和Double處理,但是Double.valueOf(String) 和Float.valueOf(String)會丟失精度。所以開發中,如果我們需要精確計算的結果,則必須使用BigDecimal類來操作啦!
(一)BigDecimal類的常用的幾個構造方法
- BigDecimal(int):將int表示形式轉換為BigDecimal對象
- BigDecimal(String) :將字符串表示形式轉換為BigDecimal對象
- BigDecimal(double):將double表示形式轉換為BigDecimal對象
(二)BigDecimal類的常用方法
- add(BigDecimal):BigDecimal對象中的值相加,返回BigDecimal對象
- subtract(BigDecimal):BigDecimal對象中的值相減,返回BigDecimal對象
- multiply(BigDecimal):BigDecimal對象中的值相乘,返回BigDecimal對象
- divide(BigDecimal):BigDecimal對象中的值相除,返回BigDecimal對象
- toString():將BigDecimal對象中的值轉換成字符串
- doubleValue():將BigDecimal對象中的值轉換成雙精度數
- floatValue():將BigDecimal對象中的值轉換成單精度數
- longValue():將BigDecimal對象中的值轉換成長整數
- intValue():將BigDecimal對象中的值轉換成整數
-
下面分享java代碼,以作參考
-
1 Java代碼 復制代碼 收藏代碼 2 import java.math.BigDecimal; 3 /** 4 * 由於Java的簡單類型不能夠精確的對浮點數進行運算,這個工具類提供精
那麽,BigDecimal 怎麽轉換成int或者Long
-
如下:
BigDecimal a=new BigDecimal(12.88); int b=a.intValue(); System.out.println(b);//b=12;
Java 使用BigDecimal類處理高精度計算