BigDecimal 方法大全

一.舍入模式的三種定義方式

1.BigDecimal 常量

模式 常量名 描述
向上取整 ROUND_DOWN 直接刪除多餘的小數位
向下取整 ROUND_UP 2.35變成2.3
四捨五入 ROUND_HALF_UP 2.35變成2.4, 2.34變成2.3
五舍六入 ROUND_HALF_DOWN 5也會向下舍 2.35變成2.3
接近正無窮大的舍入 ROUND_CEILING -2.35 變成 -2.3,2.35變成2.4
接近負無窮大的舍入 ROUND_FLOOR -2.35 變成 -2.4, 2.35變成2.3
向最接近的數字舍入 ROUND_HALF_EVEN 若是與兩個相鄰數字的距離相等,則向相鄰的偶數舍入
計算結果是精確的,不須要舍入模式 ROUND_UNNECESSARY 不捨入,若是結果精確會拋出異常

2.RoundingMode 枚舉

其實就是枚舉類裏面封裝了一個常量,引用了上面的枚舉類常量,運用方法:RoundingMode.HALF_UPide

UP(BigDecimal.ROUND_UP),
DOWN(BigDecimal.ROUND_DOWN),
CEILING(BigDecimal.ROUND_CEILING),
FLOOR(BigDecimal.ROUND_FLOOR),
HALF_UP(BigDecimal.ROUND_HALF_UP),
HALF_DOWN(BigDecimal.ROUND_HALF_DOWN),
HALF_EVEN(BigDecimal.ROUND_HALF_EVEN),
UNNECESSARY(BigDecimal.ROUND_UNNECESSARY);

3.MathContext 不可變對象

爲一個不可變對象,他經常使用的構造方法以下:code

  • MathContext(int setPrecision) 精度,默認舍入模式爲四捨五入
  • MathContext(int setPrecision,RoundingMode setRoundingMode)
    精度,舍入模式

二.經常使用運算方法

1.加法 add()

方法 參數解釋 描述
add(BigDecimal augend) subtrahend:加數 精度取兩個數中精度較大的那個精度
add(BigDecimal augend,MathContext mc) subtrahend:加數,mc:看上面的MathContext

2.減法 subtract()

方法 參數解釋 描述
subtract(BigDecimal subtrahend) subtrahend:減數 精度取兩個數中精度較大的那個精度
subtract(BigDecimal subtrahend,MathContext mc) subtrahend:減數,mc:看上面的MathContext

3.乘法 multiply()

方法 參數解釋 描述
multiply(BigDecimal multiplicand) multiplicand:另外一個乘數 精度爲兩個乘數的精度相乘
multiply(BigDecimal multiplicand, MathContext mc) multiplicand:另外一個乘數,mc:看上面的MathContext

4.除法 divide()

方法 參數解釋 描述
divide(BigDecimal divisor) divisor:除數 不能整除就報錯
divide(BigDecimal divisor,int roundingMode) divisor:除數,roundingMode:保留小數 默認舍入模式爲ROUND_UNNECESSARY
divide(BigDecimal divisor,int scale,int roundingMode) divisor:除數,scale:保留位數,roundingMode:舍入模式

5.保留幾位小數 setScale()

方法 參數解釋
setScale(int newScale,int roundingMode) 第一個參數爲保存的小數位數,第二個參數爲舍入模式
setScale(int newScale,RoundingMode roundingMode) 第一個參數爲保留的小數位數,第二個參數爲舍入模式枚舉類
setScale(int newScale) 第一個參數爲保留的小數位數,默認的舍入模式爲不捨入

6.比較大小 compareTo()

方法 參數解釋 描述
compareTo(BigDecimal val) val:比較的參數 調用方法對象>val 返回 1,調用方法對象 < val 返回 -1,調用方法對象 = val 返回 0

三.其餘方法

方法 方法用途
toString() 將BigDecimal對象的數值轉換成字符串
floatValue 將BigDecimal對象中的值以單精度數返回
longValue() 將BigDecimal對象中的值以長整數返回
intValue() 將BigDecimal對象中的值以整數返回
max(BigDecimal val) 取兩個數中最大的一個
min(BigDecimal val)
remainder(BigDecimal divisor) 求餘數,求BigDecimal類型數據除以divisor的餘數
abs() 絕對值,求BigDecimal類型數據的絕對值
negate() 相反數,求BigDecimal類型數據的相反數
相關文章
相關標籤/搜索