Math 、 BigDecimal知識整理

Math

Math 類包含用於執行基本數學運算的方法,如初等指數、對數、平方根和三角函數。 
abs:返回當前值的絕對值; 
cbrt:返回當前值的立方根; 
ceil:返回當前值最小的(最接近負無窮大) 值,該值大於等於參數,並等於某個整數; 
floor:返回當前值最大的(最接近正無窮大) 值,該值小於等於參數,並等於某個整數; 
log(double a) :返回 double 值的自然對數(底數是 e); 
log10(double a) :返回 double 值的底數爲 10 的對數; 
log1p(double x):返回參數與 1 之和的自然對數; 
max(double a, double b):返回兩個 double 值中較大的一個; 
min(double a, double b):返回兩個 double 值中較小的一個; 
signum(double d):返回參數的符號函數;如果參數爲 0,則返回 0;如果參數大於 0,則返回 1.0;如果參數小於 0,則返回 -1.0。

BigDecimal

  • BigDecimal不可變的、任意精度的有符號十進制數。

BigDecimal 由任意精度的整數非標度值 和 32 位的整數標度 (scale) 組成。如果爲零或正數,則標度是小數點後的位數。如果爲負數,則將該數的非標度值乘以 10 的負 scale 次冪。因此,BigDecimal 表示的數值是 (unscaledValue × 10-scale)。

BigDecimal 類提供以下操作:

  • 算術、標度操作、舍入、比較、哈希算法和格式轉換。
  • toString() 方法提供 BigDecimal 的規範表示形式。

構造方法摘要

  1. BigDecimal(BigInteger val) :將 BigInteger 轉換爲 BigDecimal。
  2. BigDecimal(BigInteger unscaledVal, int scale) :將 BigInteger 非標度值和 int 標度轉換爲 BigDecimal。
  3. BigDecimal(BigInteger unscaledVal, int scale, MathContext mc):將 BigInteger 非標度值和 int 標度轉換爲 BigDecimal(根據上下文設置進行舍入)。
  4. BigDecimal(BigInteger val, MathContext mc): 將 BigInteger 轉換爲 BigDecimal(根據上下文設置進行舍入)。
  5. BigDecimal(char[] in):將 BigDecimal 的字符數組表示形式轉換爲 BigDecimal,接受與 BigDecimal(String) 構造方法相同的字符序列。
  6. BigDecimal(char[] in, int offset, int len) :將 BigDecimal 的字符數組表示形式轉換爲 BigDecimal,接受與 BigDecimal(String) 構造方法相同的字符序列,同時允許指定子數組。
  7. BigDecimal(char[] in, int offset, int len, MathContext mc):將 BigDecimal 的字符數組表示形式轉換爲 BigDecimal,接受與 BigDecimal(String) 構造方法相同的字符序列,同時允許指定子數組,並根據上下文設置進行舍入。
  8. BigDecimal(char[] in, MathContext mc) :將BigDecimal 的字符數組表示形式轉換爲 BigDecimal,接受與 BigDecimal(String) 構造方法相同的字符序列(根據上下文設置進行舍入)。
  9. BigDecimal(double val):將 double 轉換爲 BigDecimal,後者是 double 的二進制浮點值準確的十進制表示形式。
  10. BigDecimal(double val, MathContext mc):將 double 轉換爲 BigDecimal(根據上下文設置進行舍入)。
  11. BigDecimal(int val) :將 int 轉換爲 BigDecimal。
  12. BigDecimal(int val, MathContext mc):將 int 轉換爲 BigDecimal(根據上下文設置進行舍入)。
  13. BigDecimal(long val):將 long 轉爲BigDecimal。
  14. BigDecimal(long val, MathContext mc) :將 long 轉換爲 BigDecimal(根據上下文設置進行舍入)。
  15. BigDecimal(String val):將 BigDecimal 的字符串表示形式轉換爲 BigDecimal。
  16. BigDecimal(String val, MathContext mc):將 BigDecimal 的字符串表示形式轉換爲 BigDecimal,接受與 BigDecimal(String) 構造方法相同的字符串(按照上下文設置進行舍入)。

方法摘要

abs():返回 BigDecimal,其值爲此 BigDecimal 的絕對值,其標度爲 this.scale()。 
compareTo(BigDecimal val):將此BigDecimal與指定的 BigDecimal 比較。 
doubleValue():將此 BigDecimal 轉換爲 double。 
equals(Object x):比較此 BigDecimal 與指定的 Object 的相等性。 
hashCode():返回此 BigDecimal 的哈希碼。 
intValue():將此 BigDecimal 轉換爲 int。 
longValueExact():將此 BigDecimal 轉換爲 long,以檢查丟失的信息。 
max(BigDecimal val):返回此 BigDecimal 和 val 的最大值。 
min(BigDecimal val):返回此 BigDecimal 和 val 的最小值。 
plus():返回 BigDecimal,其值爲 (+this),其標度爲 this.scale()。 
int scale():返回此 BigDecimal 的標度。shortValueExact():將此 BigDecimal 轉換爲 short,以檢查丟失的信息。 
toBigInteger():將此 BigDecimal 轉換爲 BigInteger。 
static BigDecimal valueOf(double val):使用Double.toString(double) 方法提供的 double 規範的字符串表示形式將 double 轉換爲 BigDecimal。 
static BigDecimal valueOf(long val):將 long 值轉換爲具有零標度的 BigDecimal。 
static BigDecimal valueOf(long unscaledVal, int scale):將 long 非標度值和 int 標度轉換爲 BigDecimal。

使用BigDecimal的原因:因爲它的精度高,涉及到很精密的計算的時候用浮點數不精確,需要使用BigDecimal提高準確性

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章