1 java。lang。Math類
java。lang。Math提供了一系列靜態方法用於科學計算;其方法的引數和返回值型別一般為double型。
l abs 絕對值
l acos,asin,atan,cos,sin,tan 三角函式
l sqrt 平方根
l pow(double a,doble b) a的b次冪
l log 自然對數
l exp e為底指數
l max(double a,double b)
l min(double a,double b)
l random() 返回0。0到1。0的隨機數
l long round(double a) double型資料a轉換為long型(四捨五入)
l toDegrees(double angrad) 弧度—>角度
l toRadians(double angdeg) 角度—>弧度
2 java。math包的BigInteger和BigDecimal
Integer類作為int的包裝類,能儲存的最大整型值為231-1,Long類也是有限的,最大為263-1如果要表示再大的整數,不管是基本資料型別還是他們的包裝類都無能為力,更不用說進行運算了。
java。math包的BigInteger可以表示不可變的任意精度的整數。BigInteger 提供所有 Java 的基本整數運算子的對應物,並提供 java。lang。Math 的所有相關方法。另外,BigInteger 還提供以下運算:模算術、GCD 計算、質數測試、素數生成、位操作以及一些其他操作。
l 構造方法
n BigInteger(String val):根據字串構建BigInteger物件
l 常用方法
n BigInteger add(BigInteger val) :返回其值為 (this + val) 的 BigInteger。
n BigInteger subtract(BigInteger val) :返回其值為 (this - val) 的 BigInteger。
n BigInteger multiply(BigInteger val) :返回其值為 (this * val) 的 BigInteger。
n BigInteger divide(BigInteger val) :返回其值為 (this / val) 的 BigInteger。整數相除只保留整數部分。
n BigInteger remainder(BigInteger val) :返回其值為 (this % val) 的 BigInteger。
n BigInteger[] divideAndRemainder(BigInteger val):返回包含 (this / val) 後跟 (this % val) 的兩個 BigInteger 的陣列。
n BigInteger pow(int exponent) :返回其值為 (thisexponent) 的 BigInteger。
@Testpublic void test2(){// long num1 = 12345678901234567890L;//out of range 超過long的範圍BigInteger num1 = new BigInteger(“12345678901234567890”);BigInteger num2 = new BigInteger(“92345678901234567890”);// System。out。println(“和:” + (num1 + num2));//錯誤的System。out。println(“和:” + num1。add(num2));System。out。println(“減:” + num1。subtract(num2));System。out。println(“乘:” + num1。multiply(num2));System。out。println(“除:” + num2。divide(num1));//兩個整數相除只保留整數部分System。out。println(“冪次方:” + num2。pow(5));}
一般的Float類和Double類可以用來做科學計算或工程計算,但是在商業計算中,要求數字精度比較高,所以用到java。math。BigDecimal類。BigDecimal類支援不可變的、任意精度的有符號十進位制定點數。
l 構造器
n BigDecimal(double val)
n BigDecimal(String val)
l 常用方法
n BigDecimal add(BigDecimal augend) :返回一個 BigDecimal,其值為 (this + augend),其標度為 max(this。scale(), augend。scale())。
n BigDecimal subtract(BigDecimal subtrahend) :返回一個 BigDecimal,其值為 (this - subtrahend),其標度為 max(this。scale(), subtrahend。scale())。
n BigDecimal multiply(BigDecimal multiplicand):返回一個 BigDecimal,其值為 (this × multiplicand),其標度為 (this。scale() + multiplicand。scale())。
n BigDecimal pow(int n) :返回其值為 (thisn) 的 BigDecimal,準確計算該冪,使其具有無限精度。
n BigDecimal divide(BigDecimal divisor): 返回一個 BigDecimal,其值為 (this / divisor),其首選標度為 (this。scale() - divisor。scale());如果無法表示準確的商值(因為它有無窮的十進位制擴充套件),則丟擲 ArithmeticException。
n BigDecimal divide(BigDecimal divisor, int roundingMode) :返回一個 BigDecimal,其值為 (this / divisor),其標度為 this。scale()。
n BigDecimal divide(BigDecimal divisor, int scale, int roundingMode) :返回一個 BigDecimal,其值為 (this / divisor),其標度為指定標度。
@Testpublic void test3(){BigDecimal num1 = new BigDecimal(“-12。1234567890123456567899554544444332”);BigDecimal num2 = new BigDecimal(“89。6734567890123456567899554544444333”);System。out。println(“和:” + num1。add(num2));System。out。println(“減:” + num1。subtract(num2));System。out。println(“乘:” + num1。multiply(num2));System。out。println(“除:” + num2。divide(new BigDecimal(“2”)));//可以整除(除盡)就對,不能整除就報異常System。out。println(“除:” + num2。divide(num1,BigDecimal。ROUND_HALF_UP));System。out。println(“除:” + num2。divide(num1,BigDecimal。ROUND_DOWN));//往零的方向捨去System。out。println(“除:” + num2。divide(num1,BigDecimal。ROUND_FLOOR));//往小的方向捨去System。out。println(“除:” + num2。divide(num1,BigDecimal。ROUND_CEILING));//往大的方向捨去}
瞭解更多內容:
java常用類-字串String類
Java常用類-System系統類
Java常用類_包裝類Wrapper
Matcher 類的方法
JDK1。8之前日期時間類