@[TOC]
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),就会生成一个异常。你可以捕获这个异常或者让程序终止,而不是允许它给出一个错误的结果然后悄无声息地继续运行。