java 18.数学工具类Math

数学工具类Math

java.lang.Math 类是数学相关的工具类,提供大量静态方法,完成与数学运算相关的操作,因为是lang包所以可以直接使用不需要导入。

获取绝对值

public static double abs(double num);

向上取整

public static double ceil(double num);

向下取整

public static double floor(double num);

四舍五入,不带小数点

public static double round(double num);

PI圆周率常数

public static final double PI = 3.14159265358979323846;

其他

使用(int) 10.99 强转(10),会舍弃所有小数位

实例代码

// 使用Arrays相关的api,将一个随机字符串中的所有字符升序排列,并倒序打印。
public class demo001 {
    public static void main(String[] args) {
        System.out.println(Math.abs(0));  //0
        System.out.println(Math.abs(1));  //1
        System.out.println(Math.abs(-1));  //1
        System.out.println(Math.ceil(3.001));  //4.0
        System.out.println(Math.ceil(3.999));  //4.0
        System.out.println(Math.floor(3.001));  //3.0
        System.out.println(Math.floor(3.999));  //3.0
        System.out.println(Math.round(3.001));  //3
        System.out.println(Math.round(3.999));  //4
        System.out.println("-----------------------");
        System.out.println(Math.ceil(-3.001));  //-3.0
        System.out.println(Math.ceil(-3.999));  //-3.0
        System.out.println(Math.floor(-3.001));  //-4.0
        System.out.println(Math.floor(-3.999));  //-4.0
        System.out.println(Math.round(-3.001));  //-3
        System.out.println(Math.round(-3.999));  //-4
    }
}

细心的同学会发现,ceilfloor传入的参数如果有负号,那么函数实现的效果正好相反

练习

计算在-10.8到5.9之间,绝对值大于6或者小于2.1的整数有多少个?

// 计算在-10.8到5.9之间,绝对值大于6或者小于2.1的整数有多少个?
public class demo001 {
    public static void main(String[] args) {
        int count = 0;
        double min = -10.8;
        double max = 5.9;
        for (int i = (int) min; i < max; i++) {
            int abs = Math.abs(i);
            if (abs > 6 || abs < 2.1) {
                count++;
            }
        }
        System.out.println("总共有:" + count + "个!");
    }
}

这里记录一个出错点

请添加图片描述

我一开始想练下刚学的几个函数,

通过abs取到绝对值10.8,再用floor向下取整10.0,然后再round拿掉小数点,得到10

然后IDEA报红线了,一看round是返回long型的,int接不住,所以…

但是不接收直接打印是OK的,可以得到期望的10

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是一言

让我看看你的头像

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值