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);

java核心技术卷I中的细节(2-


使用静态的​​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-


以上是关于java核心技术卷I中的细节(2- 大数)的主要内容,如果未能解决你的问题,请参考以下文章

《Java核心技术卷I》观赏指南

Java 核心技术卷 I控制流程大数值数组

《Java核心技术 卷I:基础知识(原书第10版)》书摘

《Java核心技术 卷I:基础知识(原书第10版)》书摘

《Java核心技术 卷1 基础知识》三

Java核心技术卷一 2. java对象与类