首页 > 代码库 > 大数处理

大数处理

      Java中在BigInteger类中封装了多种操作,除了基本的加、减、乘、除操作之外,还提供了绝对值、相反数、最大公约数以及判断是否为质数等操作。 当使用BigInteger类时,可以实例化一个BigInteger对象,并自动调用相应的构造函数。BigInteger类具有很多构造函数,但最直接的一种方式是参数以字符串形式代表要处理的数字;

     BigDecimal和BigInteger都能实现大数字的运算,不同的是BigDecimal加入了小数的概念。一般的float型和double型数据只可以用来做科学计算或工程计算,但由于在商业计算中要求数字精度比较高,所以要用到java.math.BigDecimal类。BigDecimal类支持任何精度的定点数,可以用它来精确计算货币值。

例:

 1 public class BigIntegerDemo {
 2     public static void main(String[] args) {
 3         BigInteger bigInstance = new BigInteger("4"); // 实例化一个大数字
 4         // 取该大数字加2的操作
 5         System.out.println("加法操作:" + bigInstance.add(new BigInteger("2")));
 6         // 取该大数字减2的操作
 7         System.out.println("减法操作:"
 8                 + bigInstance.subtract(new BigInteger("2")));
 9         // 取该大数字乘以2的操作
10         System.out.println("乘法操作:"
11                 + bigInstance.multiply(new BigInteger("2")));
12         // 取该大数字除以2的操作
13         System.out.println("除法操作:"
14                 + bigInstance.divide(new BigInteger("2")));
15         // 取该大数字除以3的商
16         System.out.println("取商:"
17                 + bigInstance.divideAndRemainder(new BigInteger("3"))[0]);
18         // 取该大数字除以3的余数
19         System.out.println("取余数:"
20                 + bigInstance.divideAndRemainder(new BigInteger("3"))[1]);
21         // 取该大数字的2次方
22         System.out.println("做2次方操作:" + bigInstance.pow(2));
23         // 取该大数字的相反数
24         System.out.println("取相反数操作:" + bigInstance.negate());
25     }
26 }

运行结果:

加法操作:6
减法操作:2
乘法操作:8
除法操作:2
取商:1
取余数:1
做2次方操作:16
取相反数操作:-4

大数处理