文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java的大数型BigInteger与BigDecimal类实例分析

2023-06-30 13:39

关注

这篇文章主要讲解了“Java的大数型BigInteger与BigDecimal类实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java的大数型BigInteger与BigDecimal类实例分析”吧!

BigInteger类

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

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

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

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

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

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

还有一些常用方法:

equals方法。进行比较

代码演示一下:

import java.math.BigInteger;public class Demo01 {    public static void main(String[] args) {        BigInteger bigInteger1 = new BigInteger("2222222222222222222222222222222");        BigInteger bigInteger2 = new BigInteger("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进行比较    }}

Java的大数型BigInteger与BigDecimal类实例分析

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

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

BigDecimal类

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

import java.math.BigDecimal;public class Demo02 {    public static void main(String[] args) {        BigDecimal bigDecimal1 = new BigDecimal("12232423432432.53241234324");        BigDecimal bigDecimal2 = new BigDecimal("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));    }}

Java的大数型BigInteger与BigDecimal类实例分析

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

Java的大数型BigInteger与BigDecimal类实例分析

BigDecimal类当中除法除不尽问题

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

Java的大数型BigInteger与BigDecimal类实例分析

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

先来看一个方法:

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

divisor - 除数。

scale - 小数点后保留几位

roundingMode - 选择舍入模式

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

Java的大数型BigInteger与BigDecimal类实例分析

舍入模式选择:

模式意思
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类实例分析”的内容了,经过本文的学习后,相信大家对Java的大数型BigInteger与BigDecimal类实例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯