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

这篇具有很好参考价值的文章主要介绍了【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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


【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器

🎁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之间的一个整数

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器

⭐获取指定的大整数

BigInteger bigInteger=new BigInteger(number);

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器

✨注意

只能是获取整数,不能获取小数或者字母
【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器

⭐ 获取指定进制的大整数

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

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器
【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器

✨注意

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

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器

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

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器

✨注意

🏳️‍🌈能表示的范围比较小,在long的取值范围之内,超出long的范围就不行了
long的最大值是9223372036854775807
【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器
但是如果换成了下面这一种方式,就不会报错

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器
证明了静态方法获取BigInteger的对象范围比较小

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

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器

🏳️‍🌈对象一旦创建,内部的数据就不能发生变化
【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器
只要计算,就会产生新的对象
【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器

🍔BigInteger常见成员方法

⭐加减乘

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器

⭐除

🏳️‍🌈获取商

BigInteger resault=bigInteger1.divide(bigInteger2);

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器

🏳️‍🌈获取商和余数

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

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器

⭐比较是否相同

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器

⭐次幂

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器

⭐获取较大值

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器

⭐变为long类型的整数

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器

🌺总结

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器

🎁 BigDecimal

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

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

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

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

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器

⭐通过静态方法获取对象

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器

🏳️‍🌈注意

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

⭐加减乘

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器

⭐除

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器

🏳️‍🌈精确模式

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

ctrl+p可以看有什么参数
【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器
【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器

🍔总结

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法,Java基础,java,开发语言,服务器文章来源地址https://www.toymoban.com/news/detail-713611.html

到了这里,关于【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 3.2. 数学类(Math、BigInteger、BigDecimal)

    1. Math类 Math 类提供了一些基本的数学函数,如求平方根、绝对值、三角函数等。它是一个 final 类,并且所有的方法都是 static 的,因此无需创建对象,直接使用类名调用方法即可。 以下是 Math 类的一些常用方法: abs(double a) :返回参数的绝对值。 ceil(double a) :返回大于或等

    2024年02月07日
    浏览(30)
  • BigDecimal 基本使用和常用方法

    背景      涉及到比较大的数字之间的计算,使用float、double这样的浮点数就不那么准确了。因为不论是float 还是double都是浮点数,而计算机是二进制的,浮点数会失去一定的精确度。所以在 商业计算中基本 要用java.math.BigDecimal 结果输出:    1.2、BigDecimal还提供默认值创建

    2024年02月16日
    浏览(33)
  • Java开发手册中为什么禁止使用BigDecimal的equals方法做等值比较已经为什么禁止使用double直接构造BigDecimal

    阿里Java开发手册嵩山版中明确指出: 1、BigDecimal的等值比较应使用compareTo()方法,而不是equals()方法 equals()方法会比较值和精度(1.0与1.00返回结果为false),而compareTo()则会忽略精度 2、禁止使用构造方法BigDecimal(double)的方式把double值转换为BigDecimal对象 BigDecimal(double)存在精度损

    2024年02月07日
    浏览(43)
  • 【ES】一、ES入门及JavaAPI使用

    ES的倒排索引和ES与Mysql的使用对比 什么是ES: ES全称是ElasticSearch,是一个开源的搜索引擎,可以帮助我们快速从海量数据里搜索到需要的数据; 为什么要有ES:MySql或其它传统的RDBMS有一些问题 模糊查询时,如果查询条件是以 % 开头,那么查询的性能会急剧下降 文本检索结果

    2024年01月24日
    浏览(21)
  • Kafka 入门到起飞系列

    2024年02月15日
    浏览(30)
  • Git从入门到起飞(详细)

    Git是一个强大的版本控制系统,广泛用于跟踪和管理项目的代码变化。无论你是一名软件开发者、工程师还是项目经理,了解如何使用Git都是至关重要的技能。在本文中,我们将为您提供一个从下载到使用Git的完整指南。 Git是一个分布式版本控制系统,它允许多人协作开发项

    2024年02月08日
    浏览(25)
  • 【Java基础系列】BigDecimal入门

    1.什么是 BigDecimal? BigDecimal 是 Java 中的一个类,用于表示任意精度的十进制数。它属于 java.math 包,并提供了高精度的浮点数运算。与基本数据类型的浮点数(如 float 和 double )不同, BigDecimal 可以表示精确的小数,并且不会出现舍入误差。 2.BigDecimal 特点? 主要的特点包括:

    2024年02月03日
    浏览(30)
  • 【从入门到起飞】JavaSE—方法引用

    🎊专栏【JavaSE】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【The truth that you leave】 🥰欢迎并且感谢大家指出我的问题 把已经有的方法拿过来用,作为函数式接口中抽象方法的方法体 使用 :: 来引用 1.引用处需要是函数式接口 2.被引用的方法需要已经

    2024年02月08日
    浏览(26)
  • Kafka 入门到起飞 - 核心概念(术语解释)

    在kafka之旅,我们会大量讨论Kafka中的术语,那么就让我们先来了解一下这些核心概念 消息(Message): kafka的数据单元称为消息,相当于DB里的 一行数据 或 一条记录 消息由 字节数组 组成 批次: 生产者组一批数据再向kafka推送,批次大小可以通过参数配置 把消息分成批次传输

    2024年02月17日
    浏览(48)
  • java从入门到起飞(八)——循环和递归

    循环是一种重复执行特定代码块的结构。在编程中,我们经常需要重复执行某些任务,这时循环就派上了用场。 1.1 为什么需要循环? 循环使得程序可以自动化地执行重复的任务,而不需要手动重复编写相同的代码。它能够提高代码的可读性、简化程序的逻辑,并且方便对大

    2024年02月09日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包