java数学运算(Math类)
Math類
開發者可以使用+、-、*、/、%等算術運算符完成一些簡單的數學運算,但是如果碰到一些復雜的數學運算,該怎么辦呢?為了解決這個難題,Java中提供了Math類,Math類中包含許多數學方法,如取最大值、取最小值、取絕對值、三角函數、指函數和取整函數等,除此之外Math類還提供了一些數學常量,如PI、E等。
Math類概述
位于java.long包中的Math類表示數學類,因為Math類中的數學方法都被定義為static形式,所以在程序中可以直接通過Math類的類名調用某個數學方法,語法格式如下 :
Math.數學方法
在Math類中除了數學方法外還存在一些數學常量,如PI、E等,這些數學常量作為Math類的成員變量出現,調用起來也很簡單,語法格式如下:
- Math.PI:表示圓周率PI的值
- Math.E:表示自然對數e的值
例如,分別輸出PI、E的值,代碼如下:
public class Dpc {public static void main(String[] args) {System.out.println("圓周率π的值為:" + Math.PI);System.out.println("自然對數底數e值為:" + Math.E);} }返回結果:
圓周率π的值為:3.141592653589793
自然對數底數e值為:2.718281828459045
常用數學運算方法
Math類中的數學方法較多,如數學方法,如取最大值、取最小值、取絕對值、三角函數、指函數和取整函數等,Math類部分數學方法如下圖:
指數函數方法
Math類中與指數函數相關的方法如下表:
| exp(double a) | double | 用于獲取e的a次方 |
| double log(double a) | double | 用于取自然對數,即取lna的值 |
| double log10(double a) | double | 用于取底數為10的對數 |
| sqrt(double a) | double | 用于取a的平方根,其中a的值不能為負值 |
| cbrt(double a) | double | 用于取a的立方根 |
| pow(double a,double b) | double | 用于取a的b次方 |
指數運算包括求方根、取對數和求n次方,下面舉例說明如何使用Math類實現指數運算,代碼如下:
public class Dpc {public static void main(String[] args) {System.out.println("e的平方:" + Math.exp(2)); // 取e的2次方System.out.println("以e為底數,2的對數:" + Math.log(2)); // 取以e為底2的對數System.out.println("以10為底數,2的對數:" + Math.log10(2)); // 取以10為底2的對數System.out.println("4的算術平方根:" + Math.sqrt(4)); // 取4的平方根System.out.println("8的立方根:" + Math.cbrt(8)); // 取8的立方根System.out.println("2的平方:" + Math.pow(2, 2)); // 取2的2次方} }返回結果:
取整函數方法
在生活中,尤其在商品買賣的過程中,取整操作很常見。為了更好地解決生活中的問題,Java在Math類中添加了取整方法,Math類中的取整方法如下表:
| ceil(double a) | double | 返回大于或等于參數的最小整數 |
| floor(double a) | double | 返回小于或等于參數的最大整數 |
| rint(double a) | float | 返回與參數最接近的整數,如果兩個同為整數且同樣接近,則結果取偶數 |
| round(float a) | int | 將參數加上0.5后返回小于或等于參數的最大int值 |
| round(double a) | long | 將參數加上0.5后返回小于或等于參數的最大long值 |
在數軸上顯示使用floor(1.5)、ceil(1.5)和rint(1.5)這三個取整方法后的返回值,部分取整方法的返回值
注意:由于數1.0和數2.0距離數1.5都是0.5個單位長度,因此Math.rint返回偶數2.0
下面舉例說明如何使用Math類的取整方法,代碼如下:
public class Dpc {public static void main(String[] args) {// 返回第一個大于等于參數的整數System.out.println("使用ceil()方法取整:" + Math.ceil(5.2));// 返回第一個小于等于參數的整數System.out.println("使用floor()方法取整:" + Math.floor(2.5));// 返回與參數最接近的整數System.out.println("使用rint()方法取整:" + Math.rint(2.7));// 返回與參數最接近的整數System.out.println("使用rint()方法取整:" + Math.rint(2.5));// 將參數加上0.5后返回最接近的整數System.out.println("使用round()方法取整:" + Math.round(3.4f));// 將參數加上0.5后返回最接近的整數,并將結果強制轉換為長整型System.out.println("使用round()方法取整:" + Math.round(2.5));} }返回結果:
取最大值、最小值、絕對函數方法
Math類中還有一些操作數據的方法,如取最大值、最小值、絕對值等。Math類中取最大值、最小值、絕對值的方法如下表:
| max(double a,double b) | double | 取a與b之間的最大值 |
| min(int a,int b) | int | 取a與b之間的最小值,參數為整形 |
| min(long a,long b) | long | 取a與b之間的最小值,參數為長整形 |
| min(float a,float b) | float | 取a與b之間的最小值,參數為浮點形 |
| min(double a,double b) | double | 取a與b之間的最小值,參數為雙精度形 |
| abs(int a) | int | 返回整數參數的絕對值 |
| abs(long a) | long | 返回長整型參數的絕對值 |
| abs(float a) | float | 返回浮點型參數的絕對值 |
| abs(double a) | double | 返回雙精度參數的絕對值 |
下面舉例說明如何使用Math類中操作數據的方法,代碼如下:
public class AnyFunction {public static void main(String[] args) {System.out.println("4和8較大者:" + Math.max(4, 8));System.out.println("4.4和4較小者:" + Math.min(4.4, 4)); // 取兩個參數的最小值System.out.println("-7的絕對值:" + Math.abs(-7)); // 取參數的絕對值} }返回結果:
?
總結
以上是生活随笔為你收集整理的java数学运算(Math类)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字符串和转译字符
- 下一篇: 苹果CMSv10首款原创支持百度mip技