首页后端开发PHPJava的大数型BigInteger与BigDecimal类怎么使用

Java的大数型BigInteger与BigDecimal类怎么使用

时间2023-07-06 04:12:01发布访客分类PHP浏览885
导读:本文小编为大家详细介绍“Java的大数型BigInteger与BigDecimal类怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java的大数型BigInteger与BigDecimal类怎么使用”文章能帮助大家解决疑惑,下面跟...
本文小编为大家详细介绍“Java的大数型BigInteger与BigDecimal类怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java的大数型BigInteger与BigDecimal类怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

BigInteger类

在Java当中,是有许多数字要进行处理的类,比如Integer类,但是Integer类它也是有上限的。它的最大值就是到2^31-1.

如果我们此时想要表示更大的数,那就用Integer是无法表示的了,所在在Java当中提供了BigInteger类。

BigInteger类支持的数字可以说是无限大的,且支持任意精度的整数,也就是说他可以准确的表示任意数值而不会产生丢失的。

在这里也强调一下,因为传入的数型是字符型,所以在做运算的时候,不能使用 + - * /

对应的就是使用它们的方法:

add(),subtract(),multiply(),divide()

还有一些常用方法:

equals方法。进行比较

代码演示一下:

importjava.math.BigInteger;

publicclassDemo01{

publicstaticvoidmain(String[]args){
    
BigIntegerbigInteger1=newBigInteger("2222222222222222222222222222222");
    
BigIntegerbigInteger2=newBigInteger("1111111111111111111111111111111");
    
System.out.println("bigInteger1大数为:"+bigInteger1);
    
System.out.println("bigInteger2大数为:"+bigInteger2);
    
System.out.println("两个大数相加:"+bigInteger1.add(bigInteger2));
    //加
System.out.println("两个大数相减:"+bigInteger1.subtract(bigInteger2));
    //减
System.out.println("两个大数相乘:"+bigInteger1.multiply(bigInteger2));
    //乘
System.out.println("两个大数相除:"+bigInteger1.divide(bigInteger2));
    //除
System.out.println("两个大数相比:"+bigInteger1.equals(bigInteger2));
//equals进行比较
}

}
    

在做除法的时候,如果有小数位,是这接截取掉小数位。

当然这方面不仅仅有有整型的,也有浮点型。

BigDecimal类

当然浮点型的精度也是可以尽可能大的。

importjava.math.BigDecimal;

publicclassDemo02{

publicstaticvoidmain(String[]args){
    
BigDecimalbigDecimal1=newBigDecimal("12232423432432.53241234324");
    
BigDecimalbigDecimal2=newBigDecimal("2.0");
    
System.out.println("bigDecimal1值:"+bigDecimal1);
    
System.out.println("bigDecimal2值:"+bigDecimal2);
    
System.out.println("加:"+bigDecimal1.add(bigDecimal2));
    
System.out.println("减:"+bigDecimal1.subtract(bigDecimal2));
    
System.out.println("乘:"+bigDecimal1.multiply(bigDecimal2));
    
System.out.println("除:"+bigDecimal1.divide(bigDecimal2));

}

}
    

在BigDecimal的方法里面,也更好的解决java语言里面的精度问题(比如出现0.1x3 == 0.3的结果为false的问题)

BigDecimal类当中除法除不尽问题

但是在使用BigDecimal的时候也有一个点需要注意一下(当遇到不能除净的话,它会选择报错的。)

所以在做除法的时候,直接给它做一个截取位数就好。

先来看一个方法:

public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)

divisor - 除数。

scale - 小数点后保留几位

roundingMode - 选择舍入模式

所以我们就可以将它写成这样:

舍入模式选择:

模式意思
ROUND_CEILING向正无穷取数
ROUND_DOWN向0取数
ROUND_FLOOR向负无穷取数
ROUND_HALF_DOWN四舍五入遇到 .5向下取数
ROUND_HALF_UP四舍五入遇到 .5向上取数
ROUND_HALF_EVEN四舍五入遇到5看前面的数,大于5向上,小于5向下,等于5再向前看。

读到这里,这篇“Java的大数型BigInteger与BigDecimal类怎么使用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

javabigintegerbigdecimal

若转载请注明出处: Java的大数型BigInteger与BigDecimal类怎么使用
本文地址: https://pptw.com/jishu/291264.html
怎么用java判断素数 Java8中怎么处理时区

游客 回复需填写必要信息