文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法

2023-09-27 11:00

关注

🎊专栏【Java基础】
🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。
🎆音乐分享【The truth that you leave】
🥰欢迎并且感谢大家指出我的问题

文章目录


在这里插入图片描述

🎁BigInteger

BigInteger 是 Java 中的一个类,用于表示任意大小的整数。与基本数据类型 int 或 long 不同,BigInteger 没有固定的范围,可以表示非常大的整数值

BigInteger 类提供了许多方法来进行整数的运算,包括加法、减法、乘法、除法、取余等。它还支持比较、位操作、幂运算等功能。

BigInteger 类的优点是可以准确地表示和计算任意大小的整数,而不会出现溢出的情况。这对于处理大整数、加密算法、密码学等领域非常有用。

但需要注意的是,由于 BigInteger 是一个对象,而不是基本数据类型,因此在使用时需要进行对象的创建和方法调用,会导致一定的性能损失。在处理一般大小的整数时,可以使用基本数据类型 int 或 long 来获得更高的性能。

总之,BigInteger 是用于处理任意大小整数的类,适用于需要高精度计算或处理非常大整数值的场景。

🍔获取BigInteger对象

⭐获取一个随机的大整数

Random random=new Random();BigInteger bigInteger=new BigInteger(number,random);

表示返回0 ~ 2^number-1之间的一个整数

在这里插入图片描述

⭐获取指定的大整数

BigInteger bigInteger=new BigInteger(number);

在这里插入图片描述

✨注意

只能是获取整数,不能获取小数或者字母
在这里插入图片描述

⭐ 获取指定进制的大整数

BigInteger bigInteger=new BigInteger(number,进制);

在这里插入图片描述
在这里插入图片描述

✨注意

在这里插入图片描述

⭐静态方法获取BigInteger的对象,内部有优化

在这里插入图片描述

✨注意

🏳️‍🌈能表示的范围比较小,在long的取值范围之内,超出long的范围就不行了
long的最大值是9223372036854775807
在这里插入图片描述
但是如果换成了下面这一种方式,就不会报错

在这里插入图片描述
证明了静态方法获取BigInteger的对象范围比较小

🏳️‍🌈在内部,对数字-16~16进行了优化
提前把-16~16先创建好BigInteger的对象,如果多次获取,不会创建新的对象

在这里插入图片描述

在这里插入图片描述

🏳️‍🌈对象一旦创建,内部的数据就不能发生变化
在这里插入图片描述
只要计算,就会产生新的对象
在这里插入图片描述

🍔BigInteger常见成员方法

⭐加减乘

在这里插入图片描述

⭐除

🏳️‍🌈获取商

BigInteger resault=bigInteger1.divide(bigInteger2);

在这里插入图片描述

🏳️‍🌈获取商和余数

BigInteger[] arr=bigInteger1.divideAndRemainder(bigInteger2);

在这里插入图片描述

⭐比较是否相同

在这里插入图片描述

⭐次幂

在这里插入图片描述

⭐获取较大值

在这里插入图片描述

⭐变为long类型的整数

在这里插入图片描述

🌺总结

在这里插入图片描述

🎁 BigDecimal

在编程中,特别是在处理金融、货币、精确计算等领域,使用 BigDecimal 进行运算可以提供更准确的结果。这是因为 BigDecimal 类在内部使用了任意精度的定点数表示法,可以表示和计算非常大或非常小的数值,同时保持高精度。

相比之下,其他数据类型(如 float 或 double)使用浮点数表示法,其在表示和计算过程中存在精度限制和舍入误差。这是因为浮点数使用有限的二进制位表示小数,无法准确表示某些十进制数。这可能导致在进行精确计算时出现舍入错误或不精确的结果。

然而,需要注意的是,由于 BigDecimal 在内存使用和计算速度方面较 float 或 double 更为消耗资源,因此在处理大量数据或需要高性能的场景下,需要权衡精度和性能之间的取舍。

⭐通过传递字符串表示的数字来创建对象

在这里插入图片描述

⭐通过静态方法获取对象

在这里插入图片描述

在这里插入图片描述

🏳️‍🌈注意

⭐加减乘

在这里插入图片描述

⭐除

在这里插入图片描述

🏳️‍🌈精确模式

public BigDecimal divide(BigDecimal val,精确几位,舍入模式);

ctrl+p可以看有什么参数
在这里插入图片描述
在这里插入图片描述

🍔总结

在这里插入图片描述

来源地址:https://blog.csdn.net/m0_72853403/article/details/133314101

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

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

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

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

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

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

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

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