大数运算
基本数据类型long ,double都是有取值范围.遇到超过范围数据怎么办引入了大数
运算对象.超过取出范围了,不能称为数字了,称为对象
java.math包: BigInteger大整数, BigDecintal大浮点(精度,不损失精度)
package com.sdjzu.biginteger;
import java.math.BigInteger;
public class BigIntegerTest {
public static void main(String[] args) {
//大数运算
BigInteger b1=new BigInteger("8374587458745974394567657465746574567456746578289945758475");
BigInteger b2=new BigInteger("73847389473483948932093847837598574987599384");
//加法
BigInteger add= b1.add(b2);
System.out.println("add = " + add);
//减法b1-b2
BigInteger subtract= b1.subtract(b2);
System.out.println("subtract = " + subtract);
//乘法
BigInteger multiply= b1.multiply(b2);
System.out.println("multiply = " + multiply);
//除法b1/b2
BigInteger divide=b1.divide(b2);
System.out.println("divide = " + divide);
}
}
●BigDecimal类使用.计算超大浮点数
。构造方法和BigInteger-样
。方法±*和BigInteger- -样
。BigDecimal divide除法运算
。divide(BigDecimal big,int scalar,int round)方法有三个参数
■big被除数
■scalar保留几位
■round保留方式
。保留方式:该类的静态成员变量
■BigDecimal.ROUND UP向上+1
■BigDecimal.ROUND. DOWN直接舍去
■BigDecimal.ROUND. HALF _UP四射五入
package com.sdjzu.bigdecimal;
import java.math.BigDecimal;
public class BigDecimalTest {
public static void main(String[] args) {
BigDecimal b1= new BigDecimal("3.673");
BigDecimal b2= new BigDecimal("2");
System.out.println("b1.add(b2) = " + b1.add(b2));
System.out.println("b1.subtract(b2) = " + b1.subtract(b2));
System.out.println("b1.multiply(b2) = " + b1.multiply(b2));
System.out.println("b1.divide(b2) = " + b1.divide(b2));
BigDecimal b3=b1.divide(b2,1,BigDecimal.ROUND_UP);//直接进一
System.out.println("b3 = " + b3);
BigDecimal b4=b1.divide(b2,1,BigDecimal.ROUND_DOWN);//直接去掉
System.out.println("b3 = " + b4);
BigDecimal b5=b1.divide(b2,1,BigDecimal.ROUND_HALF_UP);//四合五入
System.out.println("b3 = " + b5);
}
}