bigInteger和bigDecimal
当一个数字非常大的时候,是无法使用基本数据类型的。bigInteger(整数)和bigDecimal(浮点数)就是用于解决这一类问题的操作类。
package JIAQI.JQ1_7;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.math.RoundingMode;
public class Demo05 {//大数字处理
public static void main(String[] args) {
// 构造方法
BigInteger bigInteger=new BigInteger("12346516567");
//将一个字符串转换为BigInteger类型
BigInteger bigInteger1=new BigInteger("123213");
BigDecimal bigDecimal=new BigDecimal(45.123);
//将一个Double类型的转换为BigDecimal类型
BigDecimal bigDecimal1=new BigDecimal(987431);
//将一个int类型的转换为BigDecimal类型
BigDecimal bigDecimal2=new BigDecimal("12411321313");
//将一个String类型的转换为BigDecimal类型
// 加法
System.out.println(bigInteger.add(bigInteger1));
System.out.println(bigDecimal.add(bigDecimal1));
// 减法
System.out.println(bigInteger.subtract(bigInteger1));
System.out.println(bigDecimal.subtract(bigDecimal1));
// 乘法
System.out.println(bigInteger.multiply(bigInteger1));
System.out.println(bigDecimal.multiply(bigDecimal1));
// 除法
System.out.println(bigInteger.divide(bigInteger1));
BigInteger[] bigIntegers=bigInteger.divideAndRemainder(bigInteger1);
//得到数组的第一个数为商,第二个数为余数
//由于bigDecimal的divide会出现无限的小数,故需要设置保留小数的位数
System.out.println(bigDecimal.divide(bigDecimal1,2, RoundingMode.UP));
//保留两位小数,进位模式为向上进位
// 最大值和最小值
System.out.println(bigInteger.max(bigInteger1));
System.out.println(bigDecimal.max(bigDecimal1)+"asd");
System.out.println(bigInteger.min(bigInteger1));
System.out.println(bigDecimal.min(bigDecimal1));
// 转换方法
int a=bigInteger.intValue();//转换为int型
double a1=bigInteger1.doubleValue();//转换为double型
float a2=bigInteger.floatValue();//转换为float型
long a3=bigInteger.longValue();//转换为long型
String a4=bigInteger.toString();//转换为String型
int b=bigDecimal.intValue();//转换为int型
double b1=bigDecimal.doubleValue();//转换为double型
float b2=bigDecimal.floatValue();//转换为float型
long b3=bigDecimal.longValue();//转换为long型
String b4=bigDecimal.toString();//转换为String型
}
}