0 写在前面
在 Math 类中,包含了各种各样的数学函数。在编写不同类别的程序时,可能需要的函数也不同。
例如进行幂运算,需要借助于Math类的 pow方法。以下语句:double y = Math.pow(x,a);
1 Math的所有方法
以下static 代表静态方法的意思
static double | abs(double a) 返回一个 double 值的绝对值。 |
---|---|
static float | abs(float a) 返回一个 float 值的绝对值。 |
static int | abs(int a) 返回一个值的绝对值 int 。 |
static long | abs(long a) 返回一个 long 值的绝对值。 |
static double | acos(double a) 返回一个值的余弦;返回的角度范围在0到零圆周率。 |
static int | addExact(int x, int y) 返回参数的总和,抛出一个异常,如果结果溢出一个 int 。 |
static long | addExact(long x, long y) 返回参数的总和,抛出一个异常,如果结果溢出 long 。 |
static double | asin(double a) 返回一个值的圆弧正弦;返回的角度范围在零圆周率/ 2通过空圆周率/ 2。 |
static double | atan(double a) 返回一个值的反正切值;返回的角度范围在零圆周率/ 2通过空圆周率/ 2。 |
static double | atan2(double y, double x) 返回从直角坐标转换角空θ( x , y )极坐标(r, 空θ)。 |
static double | cbrt(double a) 返回一个值 double 立方根。 |
static double | ceil(double a) 返回最小(接近负无穷大) double 值是大于或等于的说法,等于一个数学整数。 |
static double | copySign(double magnitude, double sign) 用第二个浮点参数的符号返回第一个浮点参数。 |
static float | copySign(float magnitude, float sign) 用第二个浮点参数的符号返回第一个浮点参数。 |
static double | cos(double a) 返回一个角度的三角余弦。 |
static double | cosh(double x) 返回一个 double 双曲余弦值。 |
static int | decrementExact(int a) 返回参数减一,抛出一个异常,如果结果溢出一个 int 。 |
static long | decrementExact(long a) 返回参数减一,抛出一个异常,如果结果溢出 long 。 |
static double | exp(double a) 返回欧拉数努尔提升到一 double 价值动力。 |
static double | expm1(double x) 返回nulle X - 1。 |
static double | floor(double a) 收益最大(最接近正无穷大) double 值小于或等于该参数等于数学整数。 |
static int | floorDiv(int x, int y) 收益最大(最接近正无穷大) int 值小于或等于代数商。 |
static long | floorDiv(long x, long y) 收益最大(最接近正无穷大) long 值小于或等于代数商。 |
static int | floorMod(int x, int y) 返回参数的 int 地板模数。 |
static long | floorMod(long x, long y) 返回参数的 long 地板模数。 |
static int | getExponent(double d) 返回用于表示一个 double 偏指数。 |
static int | getExponent(float f) 返回用于表示一个 float 偏指数。 |
static double | hypot(double x, double y) 返回sqrt(nullx 二 + nully 二)没有中间的上溢或下溢。 |
static double | IEEEremainder(double f1, double f2) 计算剩余操作两参数由IEEE 754标准规定。 |
static int | incrementExact(int a) 返回参数递增1,抛出一个异常,如果结果溢出一个 int 。 |
static long | incrementExact(long a) 返回参数递增1,抛出一个异常,如果结果溢出 long 。 |
static double | log(double a) 收益率的自然对数(基地努尔)一 double 价值。 |
static double | log10(double a) 返回以10为底的对数的一 double 价值。 |
static double | log1p(double x) 返回参数和1的总和的自然对数。 |
static double | max(double a, double b) 返回两个 double 值越大。 |
static float | max(float a, float b) 返回两个 float 值越大。 |
static int | max(int a, int b) 返回两个 int 值越大。 |
static long | max(long a, long b) 返回两个 long 值越大。 |
static double | min(double a, double b) 返回两个 double 值较小。 |
static float | min(float a, float b) 返回两个 float 值较小。 |
static int | min(int a, int b) 返回两个 int 值较小。 |
static long | min(long a, long b) 返回两个 long 值较小。 |
static int | multiplyExact(int x, int y) 返回参数的产品,抛出一个异常,如果结果溢出一个 int 。 |
static long | multiplyExact(long x, long y) 返回参数的产品,抛出一个异常,如果结果溢出 long 。 |
static int | negateExact(int a) 返回自变量的否定,抛出一个异常,如果结果溢出一个 int 。 |
static long | negateExact(long a) 返回自变量的否定,抛出一个异常,如果结果溢出 long 。 |
static double | nextAfter(double start, double direction) 返回在第二个参数的方向上与第一个参数相邻的浮点数。 |
static float | nextAfter(float start, double direction) 返回在第二个参数的方向上与第一个参数相邻的浮点数。 |
static double | nextDown(double d) 返回邻近 d 在负无穷大的方向的浮点值。 |
static float | nextDown(float f) 返回邻近 f 在负无穷大的方向的浮点值。 |
static double | nextUp(double d) 返回邻近 d 在正无穷大方向的浮点值。 |
static float | nextUp(float f) 返回邻近 f 在正无穷大方向的浮点值。 |
static double | pow(double a, double b) 返回将第一个参数的值提高到第二个参数的功率。 |
static double | random() 返回一个 double 值与一个积极的迹象,大于或等于 0.0 小于 1.0 。 |
static double | rint(double a) 返回 double 值是在最接近的值的参数,相当于一个数学整数。 |
static long | round(double a) 返回最近的 long 的说法,与舍入到正无穷。 |
static int | round(float a) 返回最近的 int 的说法,与舍入到正无穷。 |
static double | scalb(double d, int scaleFactor) 返回 d ×2 scaleFactor 圆润好像由一个单一的正确舍入的浮点乘法的双重价值的成员组。 |
static float | scalb(float f, int scaleFactor) 返回 f ×2 scaleFactor 圆润好像由一个单一的正确舍入的浮点乘法的float值集成员。 |
static double | signum(double d) 返回自变量的符号函数;零如果参数为零,1如果参数大于零,1如果参数小于零。 |
static float | signum(float f) 返回自变量的符号函数;零如果参数为零,1.0f如果参数大于零,-1.0f如果参数小于零。 |
static double | sin(double a) 返回一个角度的三角正弦。 |
static double | sinh(double x) 返回一个 double 的双曲正弦值。 |
static double | sqrt(double a) 返回正平方根入一 double 价值。 |
static int | subtractExact(int x, int y) 返回参数的差异,抛出一个异常,如果结果溢出一个 int 。 |
static long | subtractExact(long x, long y) 返回参数的差异,抛出一个异常,如果结果溢出 long 。 |
static double | tan(double a) 返回一个角的三角切线。 |
static double | tanh(double x) 返回一个 double 的双曲正切值。 |
static double | toDegrees(double angrad) 将一个测量角度弧度近似等效的角度衡量度。 |
static int | toIntExact(long value) 返回的 long 参数的值;抛出一个异常,如果值溢出一个 int 。 |
static double | toRadians(double angdeg) 转换一个角度衡量度的近似等效用弧度测量的角。 |
static double | ulp(double d) 返回一个小规模的争论。 |
static float | ulp(float f) 返回一个小规模的争论。 |
2 举例
所以数学函数调用方法还是很简单的,有两种办法:
1.Math.方法名(对应参数);
2.在类中引入Math包,然后直接用Math下的 方法名(对应参数)
如果我想求得两个数比较大的那个值可以直接使用max(int a, int b)
方法一实现:Math.方法名(对应参数);
public class MathTest {
public static void main(String[] args) {
int a = 3;
int b = 9;
int max = Math.max(a, b);
System.out.println(max);//输出9
}
}
如果我想求a的b次方,则直接使用
import static java.lang.Math.*;
public class MathTest {
public static void main(String[] args) {
int a = 3;
int b = 9;
double pow = Math.pow(a, b);
System.out.println(pow);//19683.0
}
}
}
3 数学函数中的常量
Java还提供了两个用于表示π和e常量的最接近的近似值:
Math.PI
Math.E
可以看一下:
如果在JAVA代码中可以直接使用:
System.out.println(Math.E);
double r = 3;
System.out.println("圆的面积接近于:" + Math.PI * r * r);
输出
2.718281828459045
圆的面积接近于:28.274333882308138
写在最后
Math像是一个数学工具类一样,实际上在开发中这个还是比较好用的。
例如:如果直接用int的类型去计算10亿*4的话,结果为-294967296。因为这是一个计算溢出,超过了int最大储存数,而Math 类提供了一些方法使整数有更好的运算安全性。Math,multiplyExact(1000000000,4),就会生成一个异常。你可以捕获这个异常或者让程序终止,而不是允许它给出一个错误的结果然后悄无声息地继续运行。