首页 > 编程知识 正文

四则运算的运算顺序(java 大数四则运算_Java中的大数运算)

时间:2023-05-04 04:22:33 阅读:123244 作者:1275

(一)大数运算背景

在java中,整数型int、浮点型float和double存储数据的范围有限,移动更大的数字时会发生溢出。

最典型的场景是金融业,直接使用单精度或双精度浮点数来表示金额信息会产生精度误差。

(2) Java的最大数运算类

Java有两个高精度计算类: BigInteger和BigDecimal。

创建:请注意,必须使用String类型参数创建许多变量,而不是使用基本类型的值生成许多变量。

运算:调用用BigInteger和BigDecimal封装的运算方法即可。

BigInteger和BigDecimal都保持不变,每次修改时都会创建新对象。 因为它的基础其实是长整型或数组。

三. BigDecimal的基础原理

如果十进制整数在变换为二进制数时没有精度问题,那么只要将十进制的小数放大n倍,用整数的维度进行计算,保留相应的精度信息,就没有精度损失的问题。

BigDecimal的基本数据结构主要由四个属性值组成:

nt scale; //小数有多少位(小数点后有多少位) )。

int precision; //总工有多少位数字

长整型; //字符串将转换为长整型值(小数点除外),并且仅在传递的字符串长度小于18时使用

BigInteger intVal; //仅在传递的字符串长度大于或等于18时使用BigInteger表示数字

也就是说,作为BigDecimal的基础的数据结构,实际上是将String变换为long或BigInteger进行计算,在长度小于18的情况下变换为long型进行运算,在18以上的情况下变换为BigInteger型进行运算。

四. BigInteger基础原理

1 )在JDK的BigInteger类中以int数组保存数据:

int[] mag;

2 )正负用一个属性表示

int signum;

原理:将一个字符串val表示的大整数转换为mag数组保存,正负保存在signum属性中,采用数组操作实现各种运算方法。

(五) Java实现大数四则运算的算法

托多。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。