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

news2024/11/27 7:36:24

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

文章目录

  • 🎁BigInteger
  • 🍔获取BigInteger对象
    • ⭐获取一个随机的大整数
    • ⭐获取指定的大整数
      • ✨注意
    • ⭐ 获取指定进制的大整数
      • ✨注意
    • ⭐静态方法获取BigInteger的对象,内部有优化
      • ✨注意
  • 🍔BigInteger常见成员方法
    • ⭐加减乘
    • ⭐除
      • 🏳️‍🌈获取商
      • 🏳️‍🌈获取商和余数
    • ⭐比较是否相同
    • ⭐次幂
    • ⭐获取较大值
    • ⭐变为long类型的整数
  • 🌺总结
  • 🎁 BigDecimal
    • ⭐通过传递字符串表示的数字来创建对象
    • ⭐通过静态方法获取对象
      • 🏳️‍🌈注意
    • ⭐加减乘
    • ⭐除
      • 🏳️‍🌈精确模式
  • 🍔总结

在这里插入图片描述

🎁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,进制);

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

✨注意

  • 进制与number一定要吻合,比如设置为二进制时,number必须为0和1组成的数(例如100,123就不行)
  • 数字不能是小数

在这里插入图片描述

⭐静态方法获取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 更为消耗资源,因此在处理大量数据或需要高性能的场景下,需要权衡精度和性能之间的取舍。

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

在这里插入图片描述

⭐通过静态方法获取对象

在这里插入图片描述

在这里插入图片描述

🏳️‍🌈注意

  • 如果要表示的数字不大,没有超出double的取值范围,建议使用静态方法
  • 如果要表示的数字比较大,超出了double的取值范围,建议使用构造方法
  • 如果我们传递的是0~10之间的整数,包含0,包含10,那么方法会返回已经创建好的对象,不会重新new

⭐加减乘

在这里插入图片描述

⭐除

在这里插入图片描述

🏳️‍🌈精确模式

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

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

🍔总结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1042396.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构-图】最小生成树

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

AWS SAA知识点整理(作成中)

共通 一些信息已经更新了,但参考题的答案还是旧的。 比如: S3的最大读写性能已经提高到 3,500 PUT/COPY/POST/DELETE or 5,500 GET/HEAD requests per second 并且不再要求使用random prefix Storage Amazon S3 为了提高读取的performance: For exam…

CTF 入门指南:从零开始学习网络安全竞赛

文章目录 写在前面CTF 简介和背景CTF 赛题类型介绍CTF 技能和工具准备好书推荐 写作末尾 写在前面 CTF比赛是快速提升网络安全实战技能的重要途径,已成为各个行业选拔网络安全人才的通用方法。但是,本书作者在从事CTF培训的过程中,发现存在几…

每月固定日期提醒app用哪个?手机上可固定日期提醒的工具选择哪一个

在这个繁忙的世界中,时间总是飞逝而过,我们常常需要一些方式来提醒自己按时完成一些重要的工作任务。每月固定日期提醒是其中之一,它可以涵盖很多方面的事情,从生日、账单支付到工作报告的提交。然而,如何有效地管理这…

7章:动态加载数据处理(selenium)

selenium模块和爬虫之间的关联 便捷的获取网站中动态加载的数据便捷实现模拟登录 什么是selenium模块 基于浏览器自动化的一个模块 selenium使用流程: - 环境安装:pip install selenium - 下载一个浏览器的驱动程序(谷歌浏览器&#xff…

Python爬虫之入门保姆级教程

目录 一、分析要爬取的网站 二、导入相关库 三、相关的参数 四、向网站发出请求(使用代理IP) 五、匹配 六、获取图片,保存到文件夹中(os库) 七、完整代码 总结 相信许多人都曾为如何入门Python爬虫而烦恼。今天…

MySQL 权限变更,何时生效?

本文讲述了对三种级别权限的变更后,使其生效的方法。 作者:欧阳涵,爱可生团队 DBA 成员,看到下雨知道要打伞的 2.5 次元爱好者~ 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源…

springCloud和springboot升级

一、引言 springCloud和springBoot较低版本有时候会有网络漏洞,所以随着springCloud和springBoot的升级会修复这些漏洞。那么有时候就遇到在升级过程中,遇到不兼容的问题。需要总结下来记录一下。 二、springBoot和springCloud的使用 1、springBoot的引…

【2023年11月第四版教材】第15章《风险管理》(第三部分)

第15章《风险管理》(第三部分) 5 过程1-规划风险管理6 过程2-识别风险6.1 识别风险★★★6.2 数据收集★★★6.3 数据分析★★★ 7 过程3-实施定性风险分析7.1 实施定性风险分析7.2 数据分析★★★7.3 数据表现★★★7.4 项目文件(更新&#…

Java诊断利器Arthas安装和使用

下载 curl -O https://alibaba.github.io/arthas/arthas-boot.jar先启动java项目,然后再启动 arthas-boot.jar 第一次使用arthas的时候,先按1(后面没有对应类的)安装上arthas 粘附一个进程 常用命令 dashboard 命令&#xff1a…

安防监控/视频汇聚平台EasyCVR云端录像不展示该是什么原因?该如何解决?

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、…

中国首个接入大模型的Linux操作系统;ChatGPT支持图片和语音输入;抖音上线方言自动翻译功能丨RTE开发者日报 Vol.57

开发者朋友们大家好: 这里是「RTE 开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE (Real Time Engagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

【强化学习】01—— 强化学习简介

文章目录 两种机器学习类型强化学习定义强化学习交互过程强化学习系统要素历史(History)状态(State)策略(Policy)奖励(Reward)价值函数(Value Function)模型(Model)迷宫例子 强化学习智能体分类参考 两种机器学习类型 监督学习/无监督学习/强化学习/机器学习之间的关系 预测 根…

React的高阶函数

1.认识高阶函数 高阶组件 本身不是一个组件,而是一个函数函数的参数是一个组件,返回值也是一个组件 高阶组件的定义 import ThemeContext from "../context/theme_context"function withTheme(OriginComponent) {return (props) > {retur…

反序列化相关

1.序列化serialize() 把一个对象变成可以传输的字符串,目的就是为了方便传输。 2. 反序列化unserialize() 把被序列化的字符串还原为对象 java 将java对象转化为字节序列的过程,反序列化的过程就是 1.创建一个对象输出流 2.通过对象输出流的readobject(…

Blender DreamUV插件使用简明教程

DreamUV 是一个可让你在Blender的 3D 视口中操纵 UV的工具集合。 该工具集设计用于可重复使用的纹理,例如平铺纹理、装饰表和纹理图集。 其目的是让你无需退出 3D 视图即可对几何体进行纹理处理,从而节省时间并提高灵活性。 1、安装DreamUV 首先下载为…

C++新经典 | C++ 查漏补缺(智能指针)

目录 一、动态分配 1.初始化的三种方式 2. 释放内存 (1)悬空指针 3.创建新工程与观察内存泄漏 二、深入了解new/delete关键字 1.new和delete 2.operator new()和operator delete() 3.申请和释放一个数组 三、智能指针 1.shared_ptr &#xff0…

十大排序——2.归并排序

这篇文章我们来讲一下十大排序中的归并排序。 目录 1.概述 2.代码实现 3.总结 1.概述 归并排序主要是运用了归并的思想。 下面具体的来讲一下归并排序的整个流程和思想。 首先,给你一个无序的数组,要求你对它进行归并排序。归并排序首先需要将这个…

开始报名!龙蜥社区走进 Arm MeetUp 议程硬核剧透来了

「龙蜥社区“走进系列”MeetUp」是由龙蜥社区与生态合作伙伴联合主办的系列月度活动,每期走进一家企业,聚焦龙蜥社区和合作伙伴的技术、产品和创新动态,展示硬核技术,共建繁荣生态。 《聚焦 Arm 性能提升,助力龙蜥生态…

修炼k8s+flink+hdfs+dlink(一:安装hdfs)

一:安装jdk,并配置环境变量。 在对应的所有的节点上进行安装。 mkdir /opt/app/java cd /opt/app/java wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24http%3A%2F%2Fwww.oracle.com% 2F; oraclelicenseaccept-securebackup…