二十八、常用API二

1、BigInteger类

1.1 概述

java.math.BigInteger 类。如果运算中,数据的范围超过了long类型后,可以使用 BigInteger 类实现,该类的计算整数是不限制长度的。

BigInteger(String value) 将 BigInteger 的十进制字符串表示形式转换为 BigInteger。超过long类型的范围,已经不能称为数字了,因此构造方法中采用字符串的形式来表示超大整数,将超大整数封装成BigInteger对象

1.2 成员方法

BigInteger类提供了对很大的整数进行加、减、乘、除的方法,注意:都是与另一个BigInteger对象进行运算

方法声明 描述
BigInteger add(BigInteger value) 返回其值为 (this + val) 的 BigInteger,超大整数加法运算
BigInteger subtract(BigInteger value) 返回其值为 (this - val) 的 BigInteger,超大整数减法运算
BigInteger multiply(BigInteger value) 返回其值为 (this * val) 的 BigInteger,超大整数乘法运算
BigInteger divide(BigInteger value) 返回其值为 (this / val) 的 BigInteger,超大整数除法运算,除不尽取整数部分

【示例】

public static void main(String[] args){
    BigInteger big1 = new BigInteger("8327432493258329432643728320843");
    BigInteger big2 = new BigInteger("98237473274832382943274328834");
    //加法运算
    BigInteger add = big1.add(big2);
    System.out.println("求和:"+add);
    //减法运算
    BigInteger sub = big1.subtract(big2);
    System.out.println("求差:"+sub);
    //乘法运算
    BigInteger mul = big1.multiply(big2);
    System.out.println("乘积:"+mul);
    //除法运算
    BigInteger div = big1.divide(big2);
    System.out.println("除法:"+div);
}

2、BigDecimal类

2.1 引入

BigDecimal可以对大的小数做运算,精确不丢失

【看程序说明:】
public static void main(String[] args) {
    System.out.println(0.09 + 0.01);//0.09999999999999999
    System.out.println(1.0 - 0.32);//0.6799999999999999
    System.out.println(1.015 * 100);//101.49999999999999
    System.out.println(1.301 / 100);//0.013009999999999999
}

对于浮点运算,不要使用基本类型,而使用"BigDecimal类"类型

2.2 概述

相关内容 具体描述
java.math (使用时需要导包)
类声明 public class BigDecimal extends Number implements Comparable
描述 BigDecimal类提供了算术,缩放操作,舍入,比较,散列和格式转换的操作。提供了更加精准的数据计算方式

2.3 构造方法

构造方法名 描述
BigDecimal(double val) 将double类型的数据封装为BigDecimal对象
BigDecimal(String val) 将 BigDecimal 的字符串表示形式转换为 BigDecimal

注意:推荐使用第二种方式,第一种存在精度问题;

2.4 常用方法

BigDecimal类中使用最多的还是提供的进行四则运算的方法,如下:

方法声明 描述
BigDecimal add(BigDecimal value) 加法运算
BigDecimal subtract(BigDecimal value) 减法运算
BigDecimal multiply(BigDecimal value) 乘法运算
BigDecimal divide(BigDecimal value) 除法运算

注意:对于divide方法来说,如果除不尽的话,就会出现java.lang.ArithmeticException异常。此时可以使用divide方法的另一个重载方法;

BigDecimal divide(BigDecimal divisor, int scale, int roundingMode): divisor:除数对应的BigDecimal对象; 参数说明:scale:精确的位数;roundingMode取舍模式

3、Arrays类

3.1 Arrays类概述

java.util.Arrays类:该类的包含了操作数组的各种方法(如排序和搜索)

3.2 常用方法

  • public static void sort(int[] a) :按照数组顺序排列指定的数组
  • public static String toString(int[] a) : 返回执行数组的内容的字符串表示形式

代码体现:

public static void main(String[] args) {
    int[] arr = {432, 53, 6, 323, 765, 7, 254, 37, 698, 97, 64, 7};
    //将数组排序
    Arrays.sort(arr);
    //打印数组
    System.out.println(Arrays.toString(arr));
}

/*
打印结果:
[6, 7, 7, 37, 53, 64, 97, 254, 323, 432, 698, 765]
*/
上一篇:数字处理工具类


下一篇:Redux源码解析一 createStore.js