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