Java大数字运算
发布于:2019-08-13   作者:admin   浏览:840次

  在Java中提供了用于大数字运算的类,即java.math.BigInteger类和java.math.BigDecimal类。这两个类用于高精度计算,其中BigInteger类是针对整型大数字的处理类,而BigDecimal类是针对大小数的处理类。Java培训的小编就为大家介绍一下吧。

Java大数字运算(BigInteger类和BigDecimal类)

  BigInteger类

  如果要存储比Integer更大的数字,Integer数据类型就无能为力了。因此,Java中提供BigInteger类来处理更大的数字。

  BigInteger类型的数字范围较Integer类型的数字范围要大得多。BigInteger支持任意精度的整数,也就是说在运算中BigInteger类型可以准确地表示任何大小的整数值。

  除了基本的加、减、乘、除操作之外,BigInteger类还封装了很多操作,像求绝对值、相反数、最大公约数以及判断是否为质数等。

  要使用BigInteger类,首先要创建一个BigInteger对象。BigInteger类提供了很多种构造方法,其中最直接的一种是参数以字符串形式代表要处理的数字。这个方法语法格式如下:

  BigInteger(Stringval)

  这里的val是数字十进制的字符串。例如,要将数字5转换为BigInteger对象,语句如下:

  BigIntegerbi=newBigInteger("5")

  注意:这里数字5的双引号是必需的,因为BigInteger类构造方法要求参数是字符串类型。

  BigDecimal类

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

  BigDecimal常用的构造方法如下。

  BigDecimal(doubleval):实例化时将双精度型转换为BigDecimal类型。

  BigDecimal(Stringval):实例化时将字符串形式转换为BigDecimal类型。

  BigDecimal类的方法可以用来做超大浮点数的运算,像加、减、乘和除等。在所有运算中,除法运算是最复杂的,因为在除不尽的情况下,末位小数的处理方式是需要考虑的。

  下面列出了BigDecimal类用于实现加、减、乘和除运算的方法。

  BigDecimaladd(BigDecimalaugend)//加法操作

  BigDecimalsubtract(BigDecimalsubtrahend)//减法操作

  BigDecimalmultiply(BigDecimalmultiplieand)//乘法操作

  BigDecimaldivide(BigDecimaldivisor,intscale,introundingMode)//除法操作

  其中,divide()方法的3个参数分别表示除数、商的小数点后的位数和近似值处理模式。