java核心技术卷I中的细节(2- 大数)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java核心技术卷I中的细节(2- 大数)相关的知识,希望对你有一定的参考价值。
文章目录
- 大数
大数
如果基本的证书和浮点数精度不能满足需求,那么可以使用java.math
包中的两个类:BigInteger、BigDecimal。
这两个类可以处理包含任意长度数字序列的数值。BigInteger类实现任意精度的整数运算,BigDecimal类实现任意精度的浮点数运算。
例如:
public static void main(String[] args)
BigInteger bigInteger = new BigInteger("123456789987654321123456789");
System.out.println("BigInteger:"+bigInteger);
BigDecimal bigDecimal = new BigDecimal("12345678998.7654321123456789");
System.out.println("BigDecimal:"+bigDecimal);
使用静态的valueOf()
方法可以将普通的数值转换为大数。
BigInteger n = BigInteger.valueOf(10000);
但是,我们熟悉的 “+ - * / ”算数运算符不能处理大数,而要适应大数类提供的add()、substract()、multiply()、divide()
方法。
例如:
public static void main(String[] args)
BigInteger a = new BigInteger("123456789");
BigInteger b = new BigInteger("987654321");
System.out.println("a = " + a);
System.out.println("b = " + b);
BigInteger c = a.add(b); //c = a + b
System.out.println("a + b = " + c);
BigInteger d = a.multiply(b.add(c)); //d = a * (b + c)
System.out.println("a * (b + c) = " + d);
以上是关于java核心技术卷I中的细节(2- 大数)的主要内容,如果未能解决你的问题,请参考以下文章