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

2024-02-26 1136阅读

温馨提示:这篇文章已超过407天没有更新,请注意相关的内容是否还可用!

🎊专栏【Java基础】

🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。

🎆音乐分享【The truth that you leave】

🥰欢迎并且感谢大家指出我的问题

文章目录

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

                      【从入门到起飞】JavaAPI—BigInteger,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之间的一个整数

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

                      ⭐获取指定的大整数

                      BigInteger bigInteger=new BigInteger(number);
                      

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

                      ✨注意

                      只能是获取整数,不能获取小数或者字母

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

                      ⭐ 获取指定进制的大整数

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

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

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

                      ✨注意

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

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

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

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

                        ✨注意

                        🏳️‍🌈能表示的范围比较小,在long的取值范围之内,超出long的范围就不行了

                        long的最大值是9223372036854775807

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

                        但是如果换成了下面这一种方式,就不会报错

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

                        证明了静态方法获取BigInteger的对象的范围比较小

                        🏳️‍🌈在内部,对数字-16~16进行了优化

                        提前把-16~16先创建好BigInteger的对象,如果多次获取,不会创建新的对象

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

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

                        🏳️‍🌈对象一旦创建,内部的数据就不能发生变化

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

                        只要计算,就会产生新的对象

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

                        🍔BigInteger常见成员方法

                        ⭐加减乘

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

                        ⭐除

                        🏳️‍🌈获取商

                        BigInteger resault=bigInteger1.divide(bigInteger2);
                        

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

                        🏳️‍🌈获取商和余数

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

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

                        ⭐比较是否相同

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

                        ⭐次幂

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

                        ⭐获取较大值

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

                        ⭐变为long类型的整数

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

                        🌺总结

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

                        🎁 BigDecimal

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

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

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

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

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

                        ⭐通过静态方法获取对象

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

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

                        🏳️‍🌈注意

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

                          ⭐加减乘

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

                          ⭐除

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

                          🏳️‍🌈精确模式

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

                          ctrl+p可以看有什么参数

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

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

                          🍔总结

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

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]