【JAVASE基础】大数运算

大数运算
基本数据类型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);
    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值