在 Java 里,BigDecimal 本身并不是“任意精度整数”,它是任意精度的十进制浮点数(可以带小数)。
如果你说的是任意精度整数,那应该用 BigInteger;如果是“用 BigDecimal 读入整数值”,下面分别说明。
BigIntegerimport java.math.BigInteger;
BigInteger a = new BigInteger("123456789012345678901234567890");
import java.util.Scanner;
import java.math.BigInteger;
Scanner sc = new Scanner(System.in);
BigInteger a = sc.nextBigInteger();
BigInteger a = new BigInteger(Files.readString(Path.of("num.txt")).trim());
import java.math.BigDecimal;
BigDecimal a = new BigDecimal("123456789012345678901234567890");
Scanner sc = new Scanner(System.in);
BigDecimal a = new BigDecimal(sc.next());
BigDecimal bad = new BigDecimal(0.1); // 实际是 0.1000000000000000055...
new BigDecimal("1.23") ✅
new BigDecimal(1.23) ❌
BigDecimal r = a.divide(b, 10, RoundingMode.HALF_UP);
compareToa.compareTo(b) == 0 ✅
a.equals(b) ❌(会区分 scale)
BigIntegerBigDecimaldouble 直接转如果你能说清楚是 整数运算 还是 小数运算,我可以给你更合适的代码示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。