Java Big Number操作BigInteger及BigDecimal类详解
BigInteger类
java.math.BigInteger 类的使用场景是大整数操作。它提供类似所有Java的基本整数运算符和java.lang.Math中的所有相关的方法的操作,如+、-、*、/、%、&、|、mod、>>、<<,以及min()、max()等等。
只不过它操作的整数都是极其大的,为科学计算提供了很大的便利。比如下面的代码就是计算20000000000000000000 * 30000000000000000000,利用BigInteger可以很容易的计算出来结果。
import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in=new Scanner(System.in); String a = in.nextLine(); String b = in.nextLine(); BigInteger biga = new BigInteger(a); BigInteger bigb = new BigInteger(b); BigInteger result = biga.multiply(bigb); System.out.println(result); } } //输入 30000000000000000000 20000000000000000000 //输出 600000000000000000000000000000000000000
构造函数
BigInteger提供了6个构造函数,方便取到一个大数。上方的代码就是利用形参是String的构造函数来将传入的字符串转换为BigInteger类型。常用的构造方法如下:
- BigInteger(String val):将10进制字符串转换为BigInteger
- BigInteger(byte[] val):将只含有0和1的bite[]数组转换为2进制表示的BigInteger值
- BigInteger(int numBits, Random rnd):构造一个随机生成的BigInteger,均匀分布在范围0到 (2^numBits - 1)
- BigInteger(String val, int radix):将字符串转换为指定进制的BigInteger
类方法
BigInteger的类方法有40多个,覆盖了简单四则运算、位运算、科学计算、哈希运算、类型转换等。下面是最最常用的方法:
- BigInteger abs() :求绝对值
- BigInteger add(BigInteger val):计算和
- BigInteger subtract(BigInteger val):计算差
- BigInteger multiply(BigInteger val):计算积
- BigInteger divide(BigInteger val):计算商
- BigInteger pow(int exponent) :计算幂
- BigInteger remainder(BigInteger val):计算余数
- BigInteger max(BigInteger val):返回较大值
- BigInteger min(BigInteger val):返回较小值
BigDecimal类
java.math.BigDecimal 类提供用于算术,刻度操作,舍入,比较,哈希算法和格式转换操作。该类的使用范围是小数运算。我们都知道Java的float和double是浮点数,直接进行比较操作、运算操作都会有误差,BigDecimal就不会出现这种情况。
toString()方法提供BigDecimal的规范表示。它使用户可以完全控制舍入行为。提供用于操作BigDecimal规模两种类型的操作:
- 缩放/舍入操作
- 小数点移动操作。
日常Coding中我还没用到过这个类,需要使用的时候再查看文档吧。不过这个类的使用方法应该和BigInteger类类似,只不过支持小数操作,在方法头中会多一些形参来控制精度或其他控制。
以上就是Java Big Number操作BigInteger及BigDecimal类详解的详细内容,更多关于Java Big Number操作的资料请关注脚本之家其它相关文章!
- Java BigInteger类,BigDecimal类,Date类,DateFormat类及Calendar类用法示例
- JAVA基本类型包装类 BigDecimal BigInteger 的使用
- Java你不了解的大数型BigInteger与BigDecimal类
- JAVA biginteger类bigdecimal类的使用示例学习
- Java中BigInteger与BigDecimal类用法总结
- java数学类Math BigInteger BigDecimal使用介绍
- Java中的System类、BigInteger类和BigDecimal类详解
- JavaAPI中BigInteger、BigDecimal的使用方法及应用
相关文章
struts2.3.24+spring4.1.6+hibernate4.3.11+mysql5.5.25开发环境搭建图文
这篇文章主要介绍了struts2.3.24+spring4.1.6+hibernate4.3.11+mysql5.5.25开发环境搭建图文教程,感兴趣的小伙伴们可以参考一下2016-06-06mybatis collection和association的区别解析
这篇文章主要介绍了mybatis collection解析以及和association的区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-07-07Spring boot中@Conditional和spring boot的自动配置实例详解
本文通过实例给大家介绍了Spring boot中@Conditional和spring boot的自动配置,需要的朋友可以参考下2018-05-05更简单更高效的Mybatis Plus最新代码生成器AutoGenerator
这篇文章主要为大家介绍了更简单更高效的Mybatis Plus最新代码生成器AutoGenerator使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-02-02
最新评论