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

🎊专栏【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.hqwc.cn/news/227590.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最透彻HTTPS

Why HTTPS 我们先来看看HTTP。HTTP(Hypertext Transfer Protocol)超文本传输协议,是一种用于分布式、协作式和超媒体信息系统的应用层协议,可以说 HTTP 是当代互联网通信的基础。 但是,HTTP 有着一个致命的缺陷&…

5.24每日一题(判断原函数是否为周期函数的基本定理 )

原函数为周期函数的充要条件:f(x)在某区间上的积分为0

96.STL-遍历算法 transform

目录 transform 语法: 功能描述: 函数原型: 代码示例: transform 是 C 标准模板库(STL)中的一个算法,用于对一个范围内的元素进行转换并将结果存储到另一个范围。以下是简要解释和一个示例…

Django项目部署本地windows IIS(详细版)和static文件设置(页面样式正常显示)

目录 必要条件: 一、下载并启用wfastcgi 二、window安装 IIS功能 三、IIS管理器中添加网站 1、复制项目 2、复制wfastcgi.py文件 3、创建文件web.config 4、添加网站,填写信息 5、启动fastcgi程序 6、修改进程标识 四、static文件设置和正确显…

Javaweb之Vue组件库Element之Form表单的详细解析

4.3.4 Form表单 4.3.4.1 组件演示 Form 表单:由输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据。 表单在我们前端的开发中使用的还是比较多的,接下来我们学习这个组件,与之前的流程一样,我们首…

美团2023年Q3财报:营收765亿元 即时零售订单量增至62亿笔

11月28日,美团(股票代码:3690.HK)发布2023年第三季度业绩,公司当季收入765亿元(人民币,下同),较去年同比增长22.1%。基于提质增效的经营策略,主体业务表现稳固健康,带动公司整体经调整净利润为57.3亿元。 …

Unity中Shader的BRDF解析(四)

文章目录 前言一、BRDF 中的 IBL二、解析一下其中的参数1、光照衰减系数 :surfaceReduction2、GI镜面反射在不同角度下的强弱 :gi.specular * FresnelLerp (specColor, grazingTerm, nv);在BRDF中,IBL(Image Based Light&#xff…

【DevOps】SonarQube 指标解读

SonarQube 指标解读 1.BUG 评级计算方法(可靠性)2.漏洞评级计算方法(安全性)3.债务和坏味道4.覆盖率4.1 代码覆盖率4.2 分支覆盖率4.3 单元测试覆盖率 5.重复 1.BUG 评级计算方法(可靠性) ✅ A&#xff1a…

深入理解 BigBird 的块稀疏注意力

引言 基于 transformer 的模型已被证明对很多 NLP 任务都非常有用。然而, 的时间和内存复杂度 (其中 是序列长度) 使得在长序列 () 上应用它们变得非常昂贵,因而大大限制了其应用。最近的几篇论文,如 Longformer 、Performer 、Reformer 、簇…

【Linux】基本指令(二)

本文续接上文基本指令(一) 目录 cpmvcatmore && less cp 语法:cp [选项] 源文件或目录 目标文件或目录 功能: 复制文件或目录 说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地…

Mysql更新varchar存储的Josn数据

Mysql更新varchar存储的Josn数据 记录一次mysql操作varchar格式存储的json字符串数据 1、检查版本 -- 版本5.7以上才可以能执行json操作 select version(); 2、创建测试数据 -- 创建测试表及测试数据 CREATE TABLE test_json_table AS SELECT UUID(), {"test1": …

第五节HarmonyOS ArkTS声明式开发范式

ArkTS声明式开发范式: 规范中各个内容说明如下: 装饰器 1、基本UI装饰器Entry、Component Entry 装饰struct,页面的入口。 Component 装饰struct,表示该struct具有基于组件的能力。 2、数据装饰器State、Prop、Link State…