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 的規範表示形式。
構造方法摘要
- BigDecimal(BigInteger val) :將 BigInteger 轉換爲 BigDecimal。
- BigDecimal(BigInteger unscaledVal, int scale) :將 BigInteger 非標度值和 int 標度轉換爲 BigDecimal。
- BigDecimal(BigInteger unscaledVal, int scale, MathContext mc):將 BigInteger 非標度值和 int 標度轉換爲 BigDecimal(根據上下文設置進行舍入)。
- BigDecimal(BigInteger val, MathContext mc): 將 BigInteger 轉換爲 BigDecimal(根據上下文設置進行舍入)。
- BigDecimal(char[] in):將 BigDecimal 的字符數組表示形式轉換爲 BigDecimal,接受與 BigDecimal(String) 構造方法相同的字符序列。
- BigDecimal(char[] in, int offset, int len) :將 BigDecimal 的字符數組表示形式轉換爲 BigDecimal,接受與 BigDecimal(String) 構造方法相同的字符序列,同時允許指定子數組。
- BigDecimal(char[] in, int offset, int len, MathContext mc):將 BigDecimal 的字符數組表示形式轉換爲 BigDecimal,接受與 BigDecimal(String) 構造方法相同的字符序列,同時允許指定子數組,並根據上下文設置進行舍入。
- BigDecimal(char[] in, MathContext mc) :將BigDecimal 的字符數組表示形式轉換爲 BigDecimal,接受與 BigDecimal(String) 構造方法相同的字符序列(根據上下文設置進行舍入)。
- BigDecimal(double val):將 double 轉換爲 BigDecimal,後者是 double 的二進制浮點值準確的十進制表示形式。
- BigDecimal(double val, MathContext mc):將 double 轉換爲 BigDecimal(根據上下文設置進行舍入)。
- BigDecimal(int val) :將 int 轉換爲 BigDecimal。
- BigDecimal(int val, MathContext mc):將 int 轉換爲 BigDecimal(根據上下文設置進行舍入)。
- BigDecimal(long val):將 long 轉爲BigDecimal。
- BigDecimal(long val, MathContext mc) :將 long 轉換爲 BigDecimal(根據上下文設置進行舍入)。
- BigDecimal(String val):將 BigDecimal 的字符串表示形式轉換爲 BigDecimal。
- 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提高準確性