Java常用类05:BigDecimal、System类

BigDecimal类

BigDecimal类用来精确计算浮点数,使用独有的add()、subtract()、multiply()、divide()方法进行精确计算

import java.math.BigDecimal;

public class Hello {
    public static void main(String[] args) {
        BigDecimal n1 = new BigDecimal("1.0");  //使用BigDecimal类必须创建对象,且必须输入字符串形式的数字,因为数字本身就不精确
        BigDecimal n2 = new BigDecimal("0.9");
        
        System.out.println(n1.add(n2));  //不能使用基本运算符
        System.out.println(n1.subtract(n2));
        System.out.println(n1.multiply(n2));
        System.out.println(n1.divide(n2, 2, BigDecimal.ROUND_HALF_UP));  //除法需指定保留的小数位数和模式,ROUND_HALF_UP表示四舍五入
        
        double d = n1.doubleValue();  //doubleValue()等方法将BigDecimal对象转换为基础数值类型
    }
}

System类

主要用于获取系统的属性数据和其它操作,其方法是静态的,因此可以直接调用

常用的就是打印当前时间:System.currentTimeMillis()

import java.util.Arrays;

public class Hello {
    public static void main(String[] args) {
        int[] s1 = {1, 2, 3, 4, 5, 6, 7, 8};
        int[] s2 = new int[8];
        System.arraycopy(s1, 4, s2, 4, 4);  //System.arraycopy()方法复制数组,参数分别为原数组,复制开始位置,目标数组,粘贴开始位置,复制长度。注意,System.arraycopy()只改变原数组目标范围内的元素而保持其他位置不变,例如归并排序的merge()方法中公用同一个数组副本,每次只改变某一个[left, right]区间的值;而Arrays.copyOf()方法不能做到这一点,它返回一个只包含目标范围的数组,如果长度大于原数组用0补充,它适合目标数组不明确的情况

        System.out.println(Arrays.toString(s2));
        System.out.println(System.currentTimeMillis());  //System.currentTimeMillis()方法,打印当前距离1970.1.1零点过去的毫秒数
        System.exit(0);  //System.exit()方法退出程序
        System.out.println("程序没有退出");  //exit()以后的代码不会再执行
    }
}
posted @ 2021-09-09 12:43  振袖秋枫问红叶  阅读(57)  评论(0)    收藏  举报