Math类 BigInteger 类 BigDecimal类 基础用法

Posted lxzwhite

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Math类 BigInteger 类 BigDecimal类 基础用法相关的知识,希望对你有一定的参考价值。

1.   Math类概念

Math 类是包含用于执行基本数学运算的方法的数学工具类,其所有方法均为静态方法。

类方法:

技术图片
public class Demo01 {
    public static void main(String[] args) {
        //求绝对值
        System.out.println(Math.abs(-2.8));
        //向上取整
        System.out.println(Math.ceil(12.2));
        //向下取整
        System.out.println(Math.floor(12.8));
        //求两个值的最大值
        System.out.println(Math.max(12.3, 89));
        //求两个值的最小值
        System.out.println(Math.min(54, 12));
        //求随机数
        System.out.println(Math.random());
        //四舍五入
        System.out.println(Math.round(45.3));
        //次幂
        System.out.println(Math.pow(2, 8));
    }
}
技术图片

2  Arrays类

技术图片
public class Demo02 {
    public static void main(String[] args) {
        //数组排序
        int []arr={2,5,2,6,8,9};
        Arrays.sort(arr);
        for(int i=0;i<arr.length;i++){
            System.out.print(arr[i]+" ");
        }
        System.out.println();
        //在数组里查找指定值的索引值
        //前提:数组必须有序
        //如果查询的值在数组中不存在,index=-(这个值应该在的位置)-1
        int[]a2={1,3,55,66,99};
        int index=Arrays.binarySearch(a2, 66);
        System.out.println(index);
        //将int[]——>String
        System.out.println(Arrays.toString(a2));
    }
}
技术图片

3     BigInteger大数据

 java中long型为最大整数类型,对于超过long型的数据如何去表示呢.在Java的世界中,超过long型的整数已经不能被称为整数了,它们被封装成BigInteger对象.在BigInteger类中,实现四则运算都是方法来实现,并不是采用运算符.

技术图片
public class Demo03 {
    public static void main(String[] args) {
        BigInteger b1=new BigInteger("1000000000000000000000000000000000000");
        BigInteger b2=new BigInteger("9000000000000000000000000000000000000");
        //加法
        System.out.println(b1.add(b2));
        //减法
        System.out.println(b2.subtract(b1));
        //乘法
        System.out.println(b1.multiply(b2));
        //除法
        System.out.println(b2.divide(b1));
    }
}
技术图片

4     BigDecimal类

double和float类型在运算中很容易丢失精度,造成数据的不准确性,Java提供我们BigDecimal类可以实现浮点数据的高精度运算

技术图片
public class Demo04 {
    public static void main(String[] args) {
        BigDecimal b1=new BigDecimal("0.09");
        BigDecimal b2=new BigDecimal("0.01");
        //加法
        System.out.println(b1.add(b2));
        //减法
        BigDecimal b3=new BigDecimal("1.0");
        BigDecimal b4=new BigDecimal("0.32");
        System.out.println(b3.subtract(b4));
        //乘法
        BigDecimal b5=new BigDecimal("1.015");
        BigDecimal b6=new BigDecimal("100");
        System.out.println(b5.multiply(b6));
        //除法
        BigDecimal b7=new BigDecimal("1.301");
        BigDecimal b8=new BigDecimal("100");
        System.out.println(b7.divide(b8));
        //向上取整并保留两位小数
        System.out.println(b7.divide(b8,2,BigDecimal.ROUND_CEILING));
    }
}
技术图片

以上是关于Math类 BigInteger 类 BigDecimal类 基础用法的主要内容,如果未能解决你的问题,请参考以下文章

math类和biginteger类

JavaSE基础六----<常用类>Math类Random类|System类,Date类Calendar类SimpleDateFormat类,BigInteger类BigDecimal类

Java学习笔记26(Math类Arrays类BigInteger类BigDecimal类)

数字操作类Math,Random,BigInteger,BigDecimal

Java基础14----正则表达式Math类System类BigInteger日期类

Java基础14----正则表达式Math类System类BigInteger日期类