Java 中的 Math 方法

1. 常量

        // 自然数 e
        System.out.println("自然对数: " + Math.E);
        // 圆周率 PI
        System.out.println("圆周率: " + Math.PI);

在这里插入图片描述

2. 随机数

        // 随机数
        System.out.println("0 到 1 的随机数" + Math.random());

在这里插入图片描述

3. 最值

        // 取两个数的最大值
        System.out.println("最大值: " + Math.max(1, 2));
        // 取两个数的最最小值
        System.out.println("最小值: " + Math.min(1, 2));

在这里插入图片描述

4. 和三角函数有关

        //  转化为角度
        System.out.println("圆周率转化为角度: " + Math.toDegrees(Math.PI));
        //  转化为弧度
        System.out.println("180 度转化为弧度 " + Math.toRadians(180));

        // 求 sin 值
        System.out.println("sin 0 = " + Math.sin(0));
        // 求 双曲正弦 值
        System.out.println("sinh 0 = " + Math.sinh(0));
        // 求 asin 值 (单位为弧度)
        System.out.println("asin 1 = " + Math.toDegrees(Math.asin(1)));
        // 求 cos 值
        System.out.println("cos 0 = " + Math.cos(0));
        // 求 双曲余弦 值
        System.out.println("cosh 0 = " + Math.cosh(0));
        // 求 acos 值 (单位为弧度)
        System.out.println("acos 0 = " + Math.toDegrees(Math.acos(0)));
        // 求 tan 值
        System.out.println("tan PI/2 = " + Math.tan(Math.PI / 2));
        // 求 双曲正切 值
        System.out.println("tanh 0 = " + Math.tanh(0));
        // 求 atan 值 (单位为弧度)
        System.out.println("atan 1 = " + Math.toDegrees(Math.atan(1)));
        // 正切值为两个指定数字的商的角度
        System.out.println("atan2(e, e) = " + Math.toDegrees(Math.atan2(Math.E, Math.E)));

在这里插入图片描述

5. 和对数函数有关

        // 自然对数
        System.out.println("ln e = " + Math.log(Math.E));
        // 自然对数 中 (x + 1)
        System.out.println("ln 0 = " + Math.log1p(0));
        // 以 10 为底对数
        System.out.println("log 10 = " + Math.log10(10));

在这里插入图片描述

6. 和指数以及幂函数有关

        // e 为底的次方
        System.out.println("e 的 1 次方: " + Math.exp(1));
        // e 为底的次方减去 1
        System.out.println("e 的 1 次方 - 1: " + Math.expm1(0));
        // 返回 float 或 double 的无偏指数
        System.out.println(Math.getExponent(1.0));
        // (第一个数) 的 (第二个数) 次方
        System.out.println("2 的 3 次方: " + Math.pow(2, 3));
        // 两个数的平方和的平方根, 没有中间溢出或下溢
        System.out.println("(3 * 3 + 4 * 4) 的平方根: " + Math.hypot(3, 4));
        // 返回 第一个数乘以 2 的第二个数的次方
        System.out.println("4 * 2 的 3 次方: " + Math.scalb(4, 3));
        
        // 平方根
        System.out.println("4 的平方根: " + Math.sqrt(4));
        // 立方根
        System.out.println("27 的立方根: " + Math.cbrt(27));

在这里插入图片描述

7. 与有等于有关

        // 四舍五入
        System.out.println("2.5 四舍五入: " + Math.round(2.5));
        // 四舍五入, 如果有 2 个数同样接近,则返回偶数的那个
        System.out.println("2.5 不同于数学的四舍五入: " + Math.rint(2.5));

        // 返回相邻的第一个参数的浮点数 (朝着第二个参数的方向)
        System.out.println("向 3 方向临近于 1 的数: " + Math.nextAfter(1, 3));
        // 负方向基本上无限接近于该数
        System.out.println("负方向接近于 3: " + Math.nextDown(3));
        // 正方向基本上无限接近于该数
        System.out.println("正方向接近于 3: " + Math.nextUp(3));

        // 向上取整
        System.out.println("1.1 向上取整: " + Math.ceil(1.1));
        // 向下取整
        System.out.println("1.7 向下取整: " + Math.floor(1.7));
        // 第一个数除以第二个数结果向下取整
        System.out.println("3 / 2 向下取整: " + Math.floorDiv(3, 2));
        // 模运算 相当于 x - (floorDiv(x, y) * y)
        System.out.println("3 - (1 * 2) = " + Math.floorMod(3, 2));
        

在这里插入图片描述

8. 符号有关

        // 绝对值
        System.out.println("-11.5 得绝对值: " + Math.abs(-11.5));
        // 相反数
        System.out.println("1 的相反数: " + Math.negateExact(1));
        // 参数的符号函数; 零返回零; 参数大于零返回 1.0; 参数小于零返回 -1.0
        System.out.println("3 的符号: " + Math.signum(3));

在这里插入图片描述

9. 加减法有关

        // 两个值相加
        System.out.println("2 + 5 = " + Math.addExact(2, 5));
        // 两个数相减
        System.out.println("3 - 1 =" + Math.subtractExact(3, 1));
        // 返回的参数值减 1
        System.out.println("2 - 1 = " + Math.decrementExact(2));
        // 返回值参数值加 1
        System.out.println("0 + 1 = " + Math.incrementExact(0));
        // 返回来两个数相乘
        System.out.println("1 * 3 = " + Math.multiplyExact(1, 3));
        // 返回两个参数的确切乘积
        System.out.println("1 * 3 = " + Math.multiplyFull(1, 3));
        // 返回长度是两个 64 位参数的 128 位乘积的最高有效 64 位
        System.out.println(Math.multiplyHigh(100000, 300000));

        // 符号拷贝 第一数的符号跟随于第二数的符号
        System.out.println("1 的符号变成 -2 的符号: " + Math.copySign(1, -2));
        // 第一个数乘以第二个数加上第三个数
        System.out.println("3 * 5 + 5 = " + Math.fma(3, 5, 5));
        // IEEE 754 标准的两个参数的余数运算, dividend - (divisor * Math.Round(dividend / divisor))
        System.out.println("5 - (3 * 2) = " + Math.IEEEremainder(5, 3));

在这里插入图片描述

10. 转型有关

        // 转化为 int 值返回
        System.out.println(Math.toIntExact(3));
        // 要返回其 ulp 的浮点值
        System.out.println(Math.ulp(3));

在这里插入图片描述

详细过程可以参考: http://www.yiidian.com/ 或者官方.

猜你喜欢

转载自blog.csdn.net/YKenan/article/details/106409017