常用API

本文介绍了Java中的Math类,包括其常用的绝对值、取整和四舍五入方法,并通过代码示例展示了它们的用法。接着探讨了System类,讲解了强制退出、获取系统时间和数组拷贝的方法。最后,详细阐述了BigDecimal类的加减乘除操作,演示了精确计算避免浮点数误差的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Math类

目标:掌握Math类的基本使用

    Math类介绍:
        Math是数学工具类,包含执行基本数字运算的各种方法。

    Math类常用方法:
        public static int  abs(int a) : 返回绝对值
        public static double ceil(double a) : 向上取整(天花板)
        public static double floor(double a) : 向下取整(地板)
        public  static int round(float a) :四舍五入
        public  static double pow(double a,double b) : 计算a的b次方   幂

代码

public class Demo1 {
    public static void main(String[] args) {
        //返回绝对值
        System.out.println( Math.abs(-5) );
        System.out.println( Math.abs(-5.6) );

        //向上取整(天花板)
        System.out.println( Math.ceil(3.1) );
        System.out.println( Math.ceil(3.9) );

        //向下取整(地板)
        System.out.println( Math.floor(3.1) );
        System.out.println( Math.floor(3.9) );
        System.out.println("-------------");

        //四舍五入(把小数变成整数,看小数点第一位,如果是>=5,进1,<5,舍弃小数部分)
        System.out.println(Math.round( 3.1 )); //3
        System.out.println(Math.round( 3.9 )); //4
        System.out.println(Math.round( 3.5 )); //4
        System.out.println(Math.round( 3.49999 )); //3
        System.out.println("-------------");

        //2的3次方
        System.out.println(2*2*2); //8
        System.out.println( Math.pow(2,3) ); //8.0
        System.out.println( Math.pow(2,10) ); //1024.0
    }
}

System类

 目标:学习System类的常用方法

    System类介绍:
        System系统类,代表当前Java程序的运行平台。

​	常用方法:
        static void  exit(int status) 强制退出虚拟机
        static long  currentTimeMillis() :获取系统时间(毫秒值)
        static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 拷贝数组

代码

public class Demo1 {

    public static void main(String[] args) {

        /*for (int i = 0; i < 10; i++) {
            System.out.println(i);
            System.exit(0); //强制退出虚拟机
        }*/

        //获取系统时间(毫秒值)
        //可以调试程序的运行时间
        long start = System.currentTimeMillis();

        //2786ms
        /*String s = "";
        for (int i = 0; i < 100000; i++) {
            s += i;
        }*/

        //8ms
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < 100000; i++) {
            sb.append(i);
        }
        String s = sb.toString();

        long end = System.currentTimeMillis();

        //时间差(时间间隔)
        System.out.println(end-start);
    }


}

复制数组

public class Demo2 {
    public static void main(String[] args) {
        /*
        static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
            复制数组
                Object src 原数组
                int srcPos 开始复制的索引
                Object dest 新数组
                int destPos 开始存入的索引
                int length 复制的个数
         */
        int[] arr = {11,22,33,44,55};
        int[] arr2 = new int[5];

        //复制所有元素到新数组中
        //System.arraycopy(arr,0,arr2,0,5);

        //把arr的22 ,33 ,44元素,拷贝到新数组中,效果[0,0,22,33,44]
        System.arraycopy(arr,1,arr2,2,3);

        //打印
        for (int i = 0; i < arr2.length; i++) {
            System.out.println(arr2[i]);
        }

    }
}

BigDecimal类

目标:掌握BigDecimal类的加减乘除方法

    1.创建对象的方式:
            BigDecimal(String val)
            BigDecimal.valueOf(double d)

    2.常用方法:
        相加:BigDecimal add(BigDecimal b)
        相减:BigDecimal subtract(BigDecimal b)
        相乘:BigDecimal multiply(BigDecimal b)
        相除:BigDecimal divide(BigDecimal b)

代码

public class Demo1 {
    public static void main(String[] args) {

        //创建BigDecimal对象,表示0.1
        BigDecimal b1 = new BigDecimal("0.1");
        System.out.println(b1);

        double d2 = 0.1;
        BigDecimal b21 = new BigDecimal(d2+"");
        System.out.println(b21);

        //不推荐
        //BigDecimal b2 = new BigDecimal(0.1);
        //System.out.println(b2);

        double d = 0.1;
        BigDecimal d3 = BigDecimal.valueOf(d);
        System.out.println(d3);

    }
}

public class Demo2 {
    public static void main(String[] args) {
        //System.out.println(0.1+0.2);

        BigDecimal a = new BigDecimal("0.1");
        BigDecimal b = new BigDecimal("0.3");

        //相加
        BigDecimal sum = a.add(b);
        System.out.println(sum);

        //相减
        BigDecimal result1 = a.subtract(b); //a-b
        BigDecimal result2 = b.subtract(a); //b-a
        System.out.println(result1);
        System.out.println(result2);

        //相乘
        System.out.println( a.multiply(b) ); //0.02

        //相除(如果除不尽会报错)
        //System.out.println( a.divide(b) ); // 0.1/0.2  0.5

        //相除(除不尽)
        /*
            divide(除数, 保留的小数位数, 舍入模式);
            RoundingMode.HALF_UP 四舍五入
         */
        BigDecimal a1 = new BigDecimal("10");
        BigDecimal b1 = new BigDecimal("6");
        BigDecimal c = a1.divide(b1, 3, RoundingMode.HALF_UP);
        System.out.println(c); //1.667
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值