大数处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数处理相关的知识,希望对你有一定的参考价值。
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
以上是关于大数处理的主要内容,如果未能解决你的问题,请参考以下文章
Java 中大数的处理方案BigInteger和BigDecimal类的使用