温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java BigDecimal任意精度整数怎么加

发布时间:2026-10-23 09:37:25 来源:亿速云 阅读:90 作者:小樊 栏目:编程语言

在 Java 里,BigDecimal 本身表示的是“任意精度的十进制数”,而不是“任意精度整数”。如果你说的是**“任意精度整数相加”**,更合适的是用 BigInteger;如果你确实是用 BigDecimal 来表示整数(比如没有小数位的金额),也可以直接加。

下面分情况说明。


一、用 BigInteger(推荐,真正的任意精度整数)

import java.math.BigInteger;

public class Main {
    public static void main(String[] args) {
        BigInteger a = new BigInteger("123456789012345678901234567890");
        BigInteger b = new BigInteger("987654321098765432109876543210");

        BigInteger sum = a.add(b);
        System.out.println(sum);
    }
}

✅ 适合:

  • 超大整数
  • 整数运算(加、减、乘、除、幂等)

二、用 BigDecimal 表示“整数”并相加

import java.math.BigDecimal;

public class Main {
    public static void main(String[] args) {
        BigDecimal a = new BigDecimal("123456789012345678901234567890");
        BigDecimal b = new BigDecimal("987654321098765432109876543210");

        BigDecimal sum = a.add(b);
        System.out.println(sum);
    }
}

⚠️ 注意:

  • BigDecimal 加法不会丢失精度
  • 不要用 new BigDecimal(double),会有精度问题
  • 推荐用字符串构造

三、BigDecimal 相加时的精度控制(整数场景常用)

如果你希望结果是整数、并且不被小数干扰:

BigDecimal sum = a.add(b)
                  .setScale(0, RoundingMode.UNNECESSARY);

或者明确舍入:

BigDecimal sum = a.add(b)
                  .setScale(0, RoundingMode.DOWN);

四、什么时候用哪个?

场景 推荐
纯整数、超大数 BigInteger
金额、需要小数 BigDecimal
高性能整数运算 long(不够再用 BigInteger)

如果你能说一下具体用途(比如:金额计算?算法题?超大 ID?),我可以给你更合适的写法。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手