Java常用API 之 java.lang.Math类(附解析和示例)_01

Math类直接继承Object类:

public final class Math extends Object
 
 

    Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。java.lang包内有一个名为StrictMath类,StrictMath类和Math类有很多同名方法。在默认情况下,很多 Math 类方法直接调用 StrictMath中的等价方法来完成。

    为了确保 Java 程序的可移植性,StrictMath类中的函数根据fdlibm(免费发布的数学库)定义,在不同平台执行都能获得完全一样的结果,多次运行也能产生一样的结果。Math类不像StrictMath类那样严格,允许浮点数最后一两个位数有误差,以此换来性能的提升。

对比Math类的源码和StrictMath类的源码

StrictMath类:

public final class StrictMath 
{
    public static native double sin(double a);//被native修饰的方法称为本地方法,用非Java代码(比如C语言代码)实现。
}

Math类:

 
 
public final class Math 
{
    public static  double sin(double a)
    {
        return StrictMath.sin(a);
    }
}

所以如果希望拥有更好的性能,就使用Math类(Math类更常用些);但在某些情况下,得到一个完全可靠、可预测的结果更重要些,那就得用StrictMath类。


-------------------------------------分割线--------------------------------------------------------

下面进入正题,列出比较常用的Math类API。

注:Math类里的域和方法都是静态的,也就是调用的时候不用创建对象,直接Math.xxx调用即可。

--------------------------------------分割线------------------------------------------------------


静态域
Math.E

e:自然对数的底数,double类型。

2.718281828459045

Math.PI 

π:圆的周长与直径之比,double类型。

3.141592653589793


 

静态方法
static double abs(double a)

返回 a 的绝对值。

例: abs(-4.3) = 4.3

static double cos(double a)

参数是以弧度表示的角,返回该角的余弦值。

例:cos(Math.PI) = -1

static double sin(double a) 

参数是以弧度表示的角,返回该角的正弦值

例:sin(Math.PI / 2) = 1

static double tan(double a) 

参数是以弧度表示的角,返回该角的正切值

例:tan(Math.PI / 4) = 1

static double atan2(double y, double x) 

将矩形坐标 (x, y) 转换成极坐标 (r, theta),返回所得角 theta。游戏设计用的多。

例:atan2(1,1) = 45

static double ceil(double a) 

返回大于或者等于 a 的最小整数,即向上取整。

例:ceil(11.8) = 12,可理解为天花板。

static double floor(double a)  返回小于或者等于 a 的最小整数,即向上取整。
例:ceil(11.8) = 11,可理解为地板。
static double exp(double a) 

返回自然数 e 的 a 次幂的值。

例:exp(2) = Math.E * Math.E

static double log(double a) 

返回 a 的自然对数(即底数是 e)。

例:log(Math.E * Math.E) = 2

static double log10(double a) 

返回 a 的底数为 10 的对数。

例:log10(100) = 2

static double max(double a, double b)

返回两个 a、b 中较大的一个。

例:max(5.7, 6,3) = 6.3

static double min(double a, double b) 返回两个 a、b 中较大的一个。
例:min(5.7, 6,3) = 5.7
static double pow(double a, double b) 

返回 a 的 b 次方。

例:pow(2,3) = 8

static long round(double a) 

返回最接近 a 的 整数。可用于四舍五入。

例:round(3.3) = 3

static double signum(double d) 

返回参数的符号函数;

例:signum(0) = 0;   signum(0.01) = 1;    signum(-0.01) = -1;

static double sqrt(double a) 

返回的 a 的正平方根。

例:sqrt(4) = 2

static double toDegrees(double radians) 

将用弧度表示的角转换为近似相等的用角度表示的角。

例:toDegrees(Math.Pi) = 180

static double toRadians(double degrees) 

将用角度表示的角转换为近似相等的用弧度表示的角。

例:toRadians(180) = Math.PI

猜你喜欢

转载自blog.csdn.net/coder__666/article/details/80188551