JAVA中Integer、BingInteger和BigDecimal之间的用法记录 您所在的位置:网站首页 bigdecimal转int型 JAVA中Integer、BingInteger和BigDecimal之间的用法记录

JAVA中Integer、BingInteger和BigDecimal之间的用法记录

2024-06-18 20:58| 来源: 网络整理| 查看: 265

1、基本介绍

在JAVA中, Integer 是 int 的包装类。一个 Integer 类型占 4 字节,一个字节占 8 bit,因此一个 Integer 总共占 32 bit。去除第一位的符号位,剩下 31 位来表示数值。

所以Integer的表示范围最小值为 -2^31,最大值为 2^31-1。

Java中提供了大数字(超过16位有效位)的操作类,即 java.math.BigInteger 类和 java.math.BigDecimal 类,用于高精度计算。

其中 BigInteger 类是针对大整数的处理类,而 BigDecimal 类则是针对大小数的处理类。BigDecimal 类的实现用到了 BigInteger 类,不同的是 BigDecimal 加入了小数的概念。

2、BigInteger 2.1 创建BigInteger类型数据

① nextBigInteger方式——从控制台读入一个BigInteger型数据

Scanner scanner = new Scanner(System.in); //1.创建BigInteger类型的数据 BigInteger data = scanner.nextBigInteger();

② new BigInteger(String val)方式——将十进制字符串表示形式转换为BigInteger

BigInteger data = new BigInteger("1111");

③ new BigInteger(String val,int radix)——将 radix 进制的数据转化为十进制的BigInteger类型的数据

BigInteger data3 = new BigInteger("1111",2);

②和③其实一样,不指定 radix 则默认是十进制。

2.2 BigInteger类型运算

返回值为BigInteger类型:add(),subtract(),multiply(),divide(),mod(),remainder(),pow(),abs(),negate();

BigInteger a = new BigInteger("13"); BigInteger b = new BigInteger("4"); int n = 3; //1.加 BigInteger bigNum1 = a.add(b); //17 //2.减 BigInteger bigNum2 = a.subtract(b); //9 //3.乘 BigInteger bigNum3 = a.multiply(b); //52 //4.除 BigInteger bigNum4 = a.divide(b); //3 //5.取模(需 b > 0,否则出现异常:ArithmeticException("BigInteger: modulus not positive")) BigInteger bigNum5 = a.mod(b); //1 //6.求余 BigInteger bigNum6 = a.remainder(b); //1 //7.平方(需 n >= 0,否则出现异常:ArithmeticException("Negative exponent")) BigInteger bigNum7 = a.pow(n); //2197 //8.取绝对值 BigInteger bigNum8 = a.abs(); //13 //9.取相反数 BigInteger bigNum9 = a.negate(); //-13 2.3 BigInteger类型常量 //0 BigInteger zero = BigInteger.ZERO; //1 BigInteger one = BigInteger.ONE; //10 BigInteger ten = BigInteger.TEN; 2.4 比较BigInteger类型数据的大小

① 比较大小:int compareTo(BigInteger val) 返回值:1:this大于val;0:等于;-1:this小于val

② 获取较大值:BigInteger max(BigInteger val) 返回较大的值

③ 获取较小值:BigInteger min(BigInteger val) 返回较小的值

3、BigDecimal 3.1 创建BigDecimal类型数据 BigDecimal(double d) 创建一个具有参数所指定双精度值的对象。 【不推荐使用】 BigDecimal(String s) 创建一个具有参数所指定以字符串表示的数值的对象。【推荐使用】 BigDecimal(long) 创建一个具有参数所指定长整数值的对象。 BigDecimal(int) 创建一个具有参数所指定整数值的对象。

注意:double 参数的构造方法不推荐使用,因为它不能精确的得到相应的值

3.2 BigDecimal对象的常用方法 1.BigDecimal add(BigDecimal value):加法,求两个BigDecimal类型数据的和。 2.BigDecimal subtract(BigDecimal value):减法,求两个BigDecimal类型数据的差。 3.BigDecimal multiply(BigDecimal value):乘法,求两个BigDecimal类型数据的积。 4.BigDecimal divide(BigDecimal divisor):除法,求两个BigDecimal类型数据的商。 5.BigDecimal remainder(BigDecimal divisor):求余数,求BigDecimal类型数据除以divisor的余数。 6.BigDecimal max(BigDecimal value):最大数,求两个BigDecimal类型数据的最大值。 7.BigDecimal min(BigDecimal value):最小数,求两个BigDecimal类型数据的最小值。 8.BigDecimal abs():绝对值,求BigDecimal类型数据的绝对值。 9.BigDecimal negate():相反数,求BigDecimal类型数据的相反数。

其中除法 divide 有三个参数的方法,第一参数表示除数,第二个参数表示小数点后保留位数,第三个参数表示取舍规则,详情参考:https://blog.csdn.net/qq_37080455/article/details/98964856

4、两者之间的转换

BigInteger 转 BigDecimal

BigDecimal bigDecimal = new BigDecimal(bigInteger) 5、参考博客

https://blog.csdn.net/qq_37080455/article/details/98964856 https://blog.csdn.net/qq_44366571/article/details/115584732 https://blog.csdn.net/weixin_44259720/article/details/87002816



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有