【转】 Java大数的一些整理体会

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:07   1251   0

【转】 Java大数的一些整理体会
大数的两个库BigInteger,BigDecimal。分别是大整数和大实数(具体有多大不详)。
操作:
1. 包含:import java.math.*;
2. 申请:
单个元素:BigInteger a, b; BigDecimal a, b;
数组:
BigInteger a[];
a = new BigInteger[1024];
BigDecimal a[];
a = new BigDecimal[1024];
3. 赋值:
a[1] = BigDecimal.valueOf(1);
a[1] = BigInteger.valueOf(1);
4. 加减乘除:
BigInteger a, b;
a = BigInteger.valueOf(1);
b = BigInteger.valueOf(2);
System.out.println(a.add(b));
System.out.println(a.subtract(b));
System.out.println(a.multiply(b));
System.out.println(a.divide(b));
BigDecimal a, b;
a = BigDecimal.valueOf(5);
b = BigDecimal.valueOf(3);
System.out.println(a.add(b));
System.out.println(a.subtract(b));
System.out.println(a.multiply(b));
System.out.println(a.divide(BigDecimal.valueOf(1)));
//这里要整除,否则会RE
System.out.println(a.divide(b, 4, 4));
//这里不太明白第3个参数是什么意思
System.out.println(a.divide(b, 4, BigDecimal.ROUND_HALF_UP));
//这里第二个参数是保留位数,第三个参数是进位方式。
5. 比较大小:
BigDecimal a, b;
a = BigDecimal.valueOf(5);
b = BigDecimal.valueOf(3);
if(a.compareTo(b) > 0)
System.out.println("a is greater than b");
else if(a.compareTo(b) == 0)
System.out.println("a is equal to b");
else if(a.compareTo(b) < 0)
System.out.println("a is lower than b");
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP