一、介紹
Java 的 Math 包含了用于執(zhí)行基本數(shù)學(xué)運(yùn)算的屬性和方法晌砾,如初等指數(shù)、對(duì)數(shù)烦磁、平方根和三角函數(shù)养匈。
Math類位于Java.lang包中,包含用于執(zhí)行基本數(shù)學(xué)運(yùn)算的方法都伪!Math類的所有執(zhí)行方法都是靜態(tài)方法呕乎,可以直接使用類名.方法名調(diào)用。
Math類是一個(gè)唯一(final)類或工具類,他提供了我們所需要的所有的數(shù)學(xué)方法及屬性陨晶,比如:我們的筆記本電腦猬仁,他就是一個(gè)工具,我們擁有了他就可以直接去使用先誉,我們可以使用他里面的office軟件逐虚、聊天軟件、聽歌軟件等谆膳,還有他本身的顯示器叭爱,鍵盤,鼠標(biāo)等漱病。
二买雾、知識(shí)點(diǎn)介紹
1、Math類中的常用方法
三杨帽、上課對(duì)應(yīng)視頻的說明文檔
1漓穿、Math類中的常用方法
public static final Double E = 2.7182818284590452354
public static final Double PI = 3.14159265358979323846
public static long abs(double x):傳回 x 的絕對(duì)值。X也可int long float
public static long pow(double x,double y):傳回x的y次冪值
public static long sqrt(double x): 傳回x開平方值
public static long max(double x,double y):傳回x注盈、y較大數(shù)
public static long min(double x,double y):傳回x晃危、y較小數(shù)
public static long floor(double x):傳回不大于x的最大整數(shù)值 ,向下取整
public static long ceil(double x):傳回不小于x的最小整數(shù)值老客,向上取整
public static long round(double x):傳回x的四舍五入值
public static long random():傳回隨機(jī)數(shù)值,產(chǎn)生一個(gè)0-1之間的隨機(jī)數(shù)(不包括0和1)
public static long exp(double x):傳回相當(dāng)于e^x
public static long log(double x):傳回x的自然對(duì)數(shù)函數(shù)值
public static long rint(double x):傳回最接近x的整數(shù)值
public static long toDegrees(double angrad):傳回將angrad徑度轉(zhuǎn)換成角度
public static long toRadians(double angdeg): 傳回將angdeg角度轉(zhuǎn)換成徑度
public static long sin(double x): 傳回x徑度的正弦函數(shù)值?
public static long cos(double x):傳回x徑度的余弦函數(shù)值?
public static long tan(double x): 傳回x徑度的正切函數(shù)值
public static long asin(double x):傳回x值的反正弦函數(shù)值僚饭。
public static long acos(double x):傳回x值的反余弦函數(shù)值。
public static long atan(double x):傳回x值的反正切函數(shù)值胧砰。
public static long atan2(double x, double y):傳回極坐標(biāo)(polar)的θ值
案例一:
public class Demo{
public static void main(String args[]){?
/**
*Math.sqrt()//計(jì)算平方根
*Math.cbrt()//計(jì)算立方根
*Math.pow(a, b)//計(jì)算a的b次方
*Math.max( , );//計(jì)算最大值
*Math.min( , );//計(jì)算最小值
*/?
System.out.println(Math.sqrt(16));? //4.0
System.out.println(Math.cbrt(8));? ? //2.0
System.out.println(Math.pow(3,2));? ? //9.0
System.out.println(Math.max(2.3,4.5));//4.5
System.out.println(Math.min(2.3,4.5));//2.3
/**
* abs求絕對(duì)值
*/?
System.out.println(Math.abs(-10.4));? ? //10.4?
System.out.println(Math.abs(10.1));? ? //10.1?
/**
* ceil天花板的意思鳍鸵,就是返回大的值
*/?
System.out.println(Math.ceil(-10.1));? //-10.0?
System.out.println(Math.ceil(10.7));? ? //11.0?
System.out.println(Math.ceil(-0.7));? ? //-0.0?
System.out.println(Math.ceil(0.0));? ? //0.0?
System.out.println(Math.ceil(-0.0));? ? //-0.0?
System.out.println(Math.ceil(-1.7));? ? //-1.0
/**
* floor地板的意思,就是返回小的值
*/?
System.out.println(Math.floor(-10.1));? //-11.0?
System.out.println(Math.floor(10.7));? //10.0?
System.out.println(Math.floor(-0.7));? //-1.0?
System.out.println(Math.floor(0.0));? ? //0.0?
System.out.println(Math.floor(-0.0));? //-0.0?
/**
* random 取得一個(gè)大于或者等于0.0小于不等于1.0的隨機(jī)數(shù)
*/?
System.out.println(Math.random());? //小于1大于0的double類型的數(shù)
System.out.println(Math.random()*2);//大于0小于1的double類型的數(shù)
System.out.println(Math.random()*2+1);//大于1小于2的double類型的數(shù)
/**
* rint 四舍五入尉间,返回double值
* 注意.5的時(shí)候會(huì)取偶數(shù)? ? 異常的尷尬=偿乖。=
*/?
System.out.println(Math.rint(10.1));? ? //10.0?
System.out.println(Math.rint(10.7));? ? //11.0?
System.out.println(Math.rint(11.5));? ? //12.0?
System.out.println(Math.rint(10.5));? ? //10.0?
System.out.println(Math.rint(10.51));? //11.0?
System.out.println(Math.rint(-10.5));? //-10.0?
System.out.println(Math.rint(-11.5));? //-12.0?
System.out.println(Math.rint(-10.51));? //-11.0?
System.out.println(Math.rint(-10.6));? //-11.0?
System.out.println(Math.rint(-10.2));? //-10.0?
/**
* round 四舍五入击罪,float時(shí)返回int值,double時(shí)返回long值
*/?
System.out.println(Math.round(10.1));? //10?
System.out.println(Math.round(10.7));? //11?
System.out.println(Math.round(10.5));? //11?
System.out.println(Math.round(10.51));? //11?
System.out.println(Math.round(-10.5));? //-10?
System.out.println(Math.round(-10.51)); //-11?
System.out.println(Math.round(-10.6));? //-11?
System.out.println(Math.round(-10.2));? //-10?
}?
}
案例二:
public class Test{?
public static void main(String[] args) {?
// TODO Auto-generated method stub?
System.out.println(Math.E);//比任何其他值都更接近 e(即自然對(duì)數(shù)的底數(shù))的 double 值贪薪。?
System.out.println(Math.PI);//比任何其他值都更接近 pi(即圓的周長(zhǎng)與直徑之比)的 double 值媳禁。?
/*
* 1.abs絕對(duì)值函數(shù)
* 對(duì)各種數(shù)據(jù)類型求絕對(duì)值
*/?
System.out.println(Math.abs(-10));//輸出10?
/*
* 2.三角函數(shù)與反三角函數(shù)
* cos求余弦
* sin求正弦
* tan求正切
* acos求反余弦
* asin求反正弦
* atan求反正切
* atan2(y,x)求向量(x,y)與x軸夾角
*/?
System.out.println(Math.acos(-1.0));//輸出圓周率3.14...?
System.out.println(Math.atan2(1.0, 1.0));//輸出 π/4 的小數(shù)值?
/*
* 3.開根號(hào)
* cbrt(x)開立方
* sqrt(x)開平方
* hypot(x,y)求sqrt(x*x+y*y)在求兩點(diǎn)間距離時(shí)有用sqrt((x1-x2)^2+(y1-y2)^2)
*/?
System.out.println(Math.sqrt(4.0));//輸出2.0?
System.out.println(Math.cbrt(8.0));//輸出2.0?
System.out.println(Math.hypot(3.0, 4.0));//輸出5.0?
/*
* 4.最值
* max(a,b)求最大值
* min(a,b)求最小值
*/?
System.out.println(Math.max(1, 2));//輸出2?
System.out.println(Math.min(1.9, -0.2));//輸出-0.2?
/*
* 5.對(duì)數(shù)
* log(a) a的自然對(duì)數(shù)(底數(shù)是e)
* log10(a) a 的底數(shù)為10的對(duì)數(shù)
* log1p(a) a+1的自然對(duì)數(shù)
* 值得注意的是,前面其他函數(shù)都有重載画切,對(duì)數(shù)運(yùn)算的函數(shù)只能傳double型數(shù)據(jù)并返回double型數(shù)據(jù)
*/?
System.out.println(Math.log(Math.E));//輸出1.0?
System.out.println(Math.log10(10));//輸出1.0?
System.out.println(Math.log1p(Math.E-1.0));//輸出1.0?
/*
* 6.冪
* exp(x) 返回e^x的值
* expm1(x) 返回e^x - 1的值
* pow(x,y) 返回x^y的值
* 這里可用的數(shù)據(jù)類型也只有double型
*/?
System.out.println(Math.exp(2));//輸出E^2的值?
System.out.println(Math.pow(2.0, 3.0));//輸出8.0?
/*
* 7.隨機(jī)數(shù)
* random()返回[0.0,1.0)之間的double值
* 這個(gè)產(chǎn)生的隨機(jī)數(shù)其實(shí)可以通過*x控制
* 比如(int)(random*100)后可以得到[0,100)之間的整數(shù)
*/?
System.out.println((int)(Math.random()*100));//輸出[0,100)間的隨機(jī)數(shù)?
/*
* 8.轉(zhuǎn)換
* toDegrees(a) 弧度換角度
* toRadians(a) 角度換弧度
*/?
System.out.println(Math.toDegrees(Math.PI));//輸出180.0?
System.out.println(Math.toRadians(180));//輸出 π 的值?
/*
* 9.其他
*/?
//copySign(x,y) 返回 用y的符號(hào)取代x的符號(hào)后新的x值?
System.out.println(Math.copySign(-1.0, 2.0));//輸出1.0?
System.out.println(Math.copySign(2.0, -1.0));//輸出-2.0?
//ceil(a) 返回大于a的第一個(gè)整數(shù)所對(duì)應(yīng)的浮點(diǎn)數(shù)(值是整的损话,類型是浮點(diǎn)型)?
//可以通過強(qiáng)制轉(zhuǎn)換將類型換成整型?
System.out.println(Math.ceil(1.3443));//輸出2.0?
System.out.println((int)Math.ceil(1.3443));//輸出2?
//floor(a) 返回小于a的第一個(gè)整數(shù)所對(duì)應(yīng)的浮點(diǎn)數(shù)(值是整的,類型是浮點(diǎn)型)?
System.out.println(Math.floor(1.3443));//輸出1.0?
//rint(a) 返回最接近a的整數(shù)的double值?
System.out.println(Math.rint(1.2));//輸出1.0?
System.out.println(Math.rint(1.8));//輸出2.0?
//nextAfter(a,b) 返回(a,b)或(b,a)間與a相鄰的浮點(diǎn)數(shù) b可以比a小?
System.out.println(Math.nextAfter(1.2, 2.7));//輸出1.2000000000000002?
System.out.println(Math.nextAfter(1.2, -1));//輸出1.1999999999999997? ?
//所以這里的b是控制條件?
//nextUp(a) 返回比a大一點(diǎn)點(diǎn)的浮點(diǎn)數(shù)?
System.out.println(Math.nextUp(1.2));//輸出1.2000000000000002?
//nextDown(a) 返回比a小一點(diǎn)點(diǎn)的浮點(diǎn)數(shù)?
System.out.println(Math.nextDown(1.2));//輸出1.1999999999999997? ?
}?
}?