JavaMath类的常用方法
中的、、、和等基本算术运算符不能进行更复杂的数学运算,例如,三角函数、对数运算、指数运算等。于是Java提供了Math工具类来完成这些复杂的运算。在Java中Math类封装了常用的数学运算,提供了基本的数学操作,如指数、对数、平方根和三角函数等。Math类位于java。lang包,它的构造方法是private的,因此无法创建Math类的对象,并且Math类中的所有方法都是类方法,可以直接通过类名来调用它们。下面详细介绍该类的常量及数学处理方法。静态常量
Math类中包含E和PI两个静态常量,正如它们名字所暗示的,它们的值分别等于e(自然对数)和(圆周率)。
例1
调用Math类的E和PI两个常量,并将结果输出。代码如下:System。out。println(E常量的值:Math。E);System。out。println(PI常量的值:Math。PI);
执行上述代码,输出结果如下:E常量的值:2。718281828459045PI常量的值:3。141592653589793求最大值、最小值和绝对值
在程序中常见的就是求最大值、最小值和绝对值问题,如果使用Math类提供的方法可以很容易实现。这些方法的说明如表1所示。
表1求最大值、最小值和绝对值的方法
方法
说明
staticintabs(inta)
返回a的绝对值
staticlongabs(longa)
返回a的绝对值
staticfloatabs(floata)
返回a的绝对值
staticdoubleabs(doublea)
返回a的绝对值
staticintmax(intx,inty)
返回x和y中的最大值
staticdoublemax(doublex,doubley)
返回x和y中的最大值
staticlongmax(longx,longy)
返回x和y中的最大值
staticfloatmax(floatx,floaty)
返回x和y中的最大值
staticintmin(intx,inty)
返回x和y中的最小值
staticlongmin(longx,longy)
返回x和y中的最小值
staticdoublemin(doublex,doubley)
返回x和y中的最小值
staticfloatmin(floatx,floaty)
返回x和y中的最小值
例2
求10和20的较大值、15。6和15的较小值、12的绝对值,代码如下:publicclassTest02{publicstaticvoidmain(String〔〕args){System。out。println(10和20的较大值:Math。max(10,20));System。out。println(15。6和15的较小值:Math。min(15。6,15));System。out。println(12的绝对值:Math。abs(12));}}
该程序的运行结果如下:10和20的较大值:2015。6和15的较小值:15。012的绝对值:12求整运算
Math类的求整方法有很多,详细说明如表2所示。
表2取整方法及其说明
方法
说明
staticdoubleceil(doublea)
返回大于或等于a的最小整数
staticdoublefloor(doublea)
返回小于或等于a的最大整数
staticdoublerint(doublea)
返回最接近a的整数值,如果有两个同样接近的整数,则结果取偶数
staticintround(floata)
将参数加上12后返回与参数最近的整数
staticlonground(doublea)
将参数加上12后返回与参数最近的整数,然后强制转换为长整型
例3
下面的实例演示了Math类中取整函数方法的应用:importjava。util。Scanner;publicclassTest03{publicstaticvoidmain(String〔〕args){ScannerinputnewScanner(System。in);System。outprintln(请输入一个数字:);doublenuminput。nextDouble();System。out。println(大于或等于num的最小整数:Math。ceil(num));System。out。println(小于或等于num的最大整数:Math。floor(num));System。out。println(将num加上0。5之后最接近的整数:Math。round(num));System。out。println(最接近num的整数:Math。rint(num));}}
执行结果如下:请输入一个数字:99。01大于或等于99。01的最小整数:100。0小于或等于99。01的最大整数:99。0将99。01加上0。5之后最接近的整数:100最接近99。01的整数:99。0三角函数运算
Math类中包含的三角函数方法及其说明如表3所示。
表3三角函数方法及其说明
方法
说明
staticdoublesin(doublea)
返回角的三角正弦值,参数以孤度为单位
staticdoublecos(doublea)
返回角的三角余弦值,参数以孤度为单位
staticdoubleasin(doublea)
返回一个值的反正弦值,参数域在〔1,1〕,值域在〔PI2,PI2〕
staticdoubleacos(doublea)
返回一个值的反余弦值,参数域在〔1,1〕,值域在〔0。0,PI〕
staticdoubletan(doublea)
返回角的三角正切值,参数以弧度为单位
staticdoubleatan(doublea)
返回一个值的反正切值,值域在〔PI2,PI2〕
staticdoubletoDegrees(doubleangrad)
将用孤度表示的角转换为近似相等的用角度表示的角
staticdoubletoRadians(doubleangdeg)
将用角度表示的角转换为近似相等的用弧度表示的角
在表3中,每个方法的参数和返回值都是double类型,参数以弧度代替角度来实现,其中1度等于180弧度,因此平角就是弧度。
例4
计算90度的正弦值、0度的余弦值、1的反正切值、120度的弧度值,代码如下:publicclassTest04{publicstaticvoidmain(String〔〕args){System。out。println{90度的正弦值:Math。sin(Math。PI2));System。out。println(0度的余弦值:Math。cos(0));System。out。println(1的反正切值:Math。atan(l));System。out。println(120度的弧度值:Math。toRadians(120。0));}}
在上述代码中,因为Math。sin()中的参数的单位是弧度,而90度表示的是角度,因此需要将90度转换为弧度,即Math。PI18090,故转换后的弧度为Math。PI2,然后调用Math类中的sin()方法计算其正弦值。
该程序的运行结果如下:90度的正弦值:1。00的余弦值:1。01的反正切值:0。7853981633974483120度的弧度值:2。0943951023931953指数运算
指数的运算包括求方根、取对数及其求n次方的运算。在Math类中定义的指数运算方法及其说明如表4所示。
表4指数方法及其说明
方法
说明
staticdoubleexp(doublea)
返回e的a次幂
staticdoublepow(doublea,doubleb)
返回以a为底数,以b为指数的幂值
staticdoublesqrt(doublea)
返回a的平方根
staticdoublecbrt(doublea)
返回a的立方根
staticdoublelog(doublea)
返回a的自然对数,即lna的值
staticdoublelog10(doublea)
返回以10为底a的对数
例5
使用Math类中的方法实现指数的运算,main()方法中的代码如下:publicclassTest05{publicstaticvoidmain(String〔〕args){System。out。println(4的立方值:Math。pow(4,3));System。out。println(16的平方根:Math。sqrt(16));System。out。println(10为底2的对数:Math。log1O(2));}}
该程序的运行结果如下:4的立方值:64。016的平方根:4。010为底2的对数:0。3010299956639812
需要源码资料的评论区扣666
链接