1、Math类的常用方法
Java 中的 +、-、*、/ 和 % 等基本算術運算符不能進行更復雜的數學運算,例如,三角函數、對數運算、指數運算等。于是 Java 提供了 Math 工具類來完成這些復雜的運算。
在 Java 中 Math 類封裝了常用的數學運算,提供了基本的數學操作,如指數、對數、平方根和三角函數等。Math 類位于 java.lang 包,它的構造方法是 private 的,因此無法創建 Math 類的對象,并且 Math 類中的所有方法都是類方法,可以直接通過類名來調用它們。
下面詳細介紹該類的常量及數學處理方法。
靜態常量
Math 類中包含 E 和 PI 兩個靜態常量,正如它們名字所暗示的,它們的值分別等于 e(自然對數)和 π(圓周率)。
例 1
調用 Math 類的 E 和 PI 兩個常量,并將結果輸出。代碼如下:
執行上述代碼,輸出結果如下:
E 常量的值:2.718281828459045 PI 常量的值:3.141592653589793求最大值、最小值和絕對值
在程序中常見的就是求最大值、最小值和絕對值問題,如果使用 Math 類提供的方法可以很容易實現。這些方法的說明如表 1 所示。
| static int abs(int a) | 返回 a 的絕對值 |
| static long abs(long a) | 返回 a 的絕對值 |
| static float abs(float a) | 返回 a 的絕對值 |
| static double abs(double a) | 返回 a 的絕對值 |
| static int max(int x,int y) | 返回 x 和 y 中的最大值 |
| static double max(double x,double y) | 返回 x 和 y 中的最大值 |
| static long max(long x,long y) | 返回 x 和 y 中的最大值 |
| static float max(float x,float y) | 返回 x 和 y 中的最大值 |
| static int min(int x,int y) | 返回 x 和 y 中的最小值 |
| static long min(long x,long y) | 返回 x 和 y 中的最小值 |
| static double min(double x,double y) | 返回 x 和 y 中的最小值 |
| static float min(float x,float y) | 返回 x 和 y 中的最小值 |
例 2
求 10 和 20 的較大值、15.6 和 15 的較小值、-12 的絕對值,代碼如下:
該程序的運行結果如下:
10和20的較大值:20 15.6和15的較小值:15.0 -12的絕對值:12求整運算
Math 類的求整方法有很多,詳細說明如表 2 所示。
| static double ceil(double a) | 返回大于或等于 a 的最小整數 |
| static double floor(double a) | 返回小于或等于 a 的最大整數 |
| static double rint(double a) | 返回最接近 a 的整數值,如果有兩個同樣接近的整數,則結果取偶數 |
| static int round(float a) | 將參數加上 1/2 后返回與參數最近的整數 |
| static long round(double a) | 將參數加上 1/2 后返回與參數最近的整數,然后強制轉換為長整型 |
例 3
下面的實例演示了 Math 類中取整函數方法的應用:
執行結果如下:
請輸入一個數字: 99.01 大于或等于 99.01 的最小整數:100.0 小于或等于 99.01 的最大整數:99.0 將 99.01 加上 0.5 之后最接近的整數:100 最接近 99.01 的整數:99.0三角函數運算
Math 類中包含的三角函數方法及其說明如表 3 所示。
| static double sin(double a) | 返回角的三角正弦值,參數以孤度為單位 |
| static double cos(double a) | 返回角的三角余弦值,參數以孤度為單位 |
| static double asin(double a) | 返回一個值的反正弦值,參數域在 [-1,1],值域在 [-PI/2,PI/2] |
| static double acos(double a) | 返回一個值的反余弦值,參數域在 [-1,1],值域在 [0.0,PI] |
| static double tan(double a) | 返回角的三角正切值,參數以弧度為單位 |
| static double atan(double a) | 返回一個值的反正切值,值域在 [-PI/2,PI/2] |
| static double toDegrees(double angrad) | 將用孤度表示的角轉換為近似相等的用角度表示的角 |
| staticdouble toRadians(double angdeg) | 將用角度表示的角轉換為近似相等的用弧度表示的角 |
在表 3 中,每個方法的參數和返回值都是 double 類型,參數以弧度代替角度來實現,其中 1 度等于 π/180 弧度,因此平角就是 π 弧度。
例 4
計算 90 度的正弦值、0 度的余弦值、1 的反正切值、120 度的弧度值,代碼如下:
在上述代碼中,因為 Math.sin() 中的參數的單位是弧度,而 90 度表示的是角度,因此需要將 90 度轉換為弧度,即 Math.PI/180*90,故轉換后的弧度為 Math.PI/2,然后調用 Math 類中的 sin() 方法計算其正弦值。
該程序的運行結果如下:
90 度的正弦值:1.0 0 的余弦值:1.0 1 的反正切值:0.7853981633974483 120 度的弧度值:2.0943951023931953指數運算
指數的運算包括求方根、取對數及其求 n 次方的運算。在 Math 類中定義的指數運算方法及其說明如表 4 所示。
表 4 指數方法及其說明
| static double exp(double a) | 返回 e 的 a 次冪 |
| static double pow(double a,double b) | 返回以 a 為底數,以 b 為指數的冪值 |
| static double sqrt(double a) | 返回 a 的平方根 |
| static double cbrt(double a) | 返回 a 的立方根 |
| static double log(double a) | 返回 a 的自然對數,即 lna 的值 |
| static double log10(double a) | 返回以 10 為底 a 的對數 |
例 5
使用 Math 類中的方法實現指數的運算,main() 方法中的代碼如下:
該程序的運行結果如下:
4 的立方值:64.0 16 的平方根:4.0 10 為底 2 的對數:0.3010299956639812總結
以上是生活随笔為你收集整理的1、Math类的常用方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.23 实例:正则表达式验证IP地址
- 下一篇: 3、数字格式化