超大数BigInteger 和 超精度浮点数BigDecimal


import java.math.BigDecimal;
import java.math.BigInteger;
import java.math.RoundingMode;

/*
byte short int long 超出了long范围的整数,在java里不能使用基本数据类型,需要使用BigInteger表示
float double 都有精度丢失的问题,如果想要表示超精度浮点数,需要使用 BigDecimal表示

超大数BigInteger: 底层使用的是字符串存储
超精度浮点数BigDecimal: 底层使用的也是字符串存储
*/
public class BigDemo {
    public static void main(String[] args) {
        // long l = 23455346234567856789756L;

        // BigInteger x = 123434;  不能和基本数据类型转换
        BigInteger x = new BigInteger("2345534623456785678975623453456");
        BigInteger y = new BigInteger("223456723456764");
        // System.out.println(x + 2);  不支持算数运算符

        // 只能通过调用方法来实现运算
        System.out.println(x.add(y));  // 加法
        System.out.println(x.subtract(y)); // 减法
        System.out.println(x.divide(y));  // 除法
        System.out.println(x.multiply(y));  // 乘法

        BigDecimal m = new BigDecimal("3.14152");
        BigDecimal n = new BigDecimal("1.0");
        System.out.println(m.add(n));
        System.out.println(m.subtract(n));
        // System.out.println(m.divide(n));

        /*divide(BigDecimal divisor,int scale,RoundingMode mode)
            divisor: 除数    scale:保留到小数点后scale位  mode:小数点后的保留方式*/
        System.out.println(m.divide(n, 3, RoundingMode.HALF_UP)); //HALF_UP 四舍五入

        System.out.println(m.multiply(n));
    }
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值