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]
*/