常用API-BigInteger、BigDecimal

BigInteger:大整数

在Java中整型有4中类型:byte、short、int、long

在底层占用字节个数:1、2、4、8

BigInteger的构造方法

public BigInteger(int num,Random rnd)获取随机大整数,范围:[0~2的num次方-1]

public BigInteger(String val)获取指定大整数

public BigInteger(String val,int radix)获取指定进制的大整数

public static BigInteger valueOf(long val)静态方法获取BigInteger对象,内部有优化

对象一旦创建,内部记录的值不能发生改变

//获取随机大整数
Random r = new Random();
BigInteger bd1 = new BigInteger(4, r);
System.out.println(bd1);

//获取指定大整数
//字符串中必须是整数,否则会报错
BigInteger bd2=new BigInteger("99999999999999999999999");
System.out.println(bd2);

//获取指定进制的大整数
//字符串中的数字必须是整数
//字符串中的数字必须跟进制吻合,否则会报错
BigInteger bd3=new BigInteger("100",10);
System.out.println(bd3);

//静态方法获取
//能表示的范围比较小,在long 的范围下取值,超出会报错
//在内部对常用的数字-16-16进行了优化
//提前吧这个范围的数字创建好了对象,多次获取不会创建新的
BigInteger bd5=BigInteger.valueOf(100);
System.out.println(bd5);

总结:

如果BigInteger表示的数字没有超出long的范围,可以用静态方法获取。

如果BigInteger表示的超出long的范围,可以用构造方法获取。

只要进行计算都会产生一个新的BigInteger对象。

成员方法:

//创建两个BigInteger对象
BigInteger bd1 = BigInteger.valueOf(10);
BigInteger bd2 = BigInteger.valueOf(3);

//加法 add
//减法 subtract
//乘法 multiply
//除法 divide获取商
BigInteger bd3 = bd1.add(bd2);
System.out.println(bd3);

//除法 divideAndRemainder获取商和余数,返回一个数组,0索引为商,1索引为余数
BigInteger[] arr = bd1.divideAndRemainder(bd2);
System.out.println(arr.length);
System.out.println(arr[0]);
System.out.println(arr[1]);

//比较是否相同 equals
boolean result = bd1.equals(bd2);
System.out.println(result);

//次幂 pow
BigInteger bd5 = bd1.pow(2);
System.out.println(bd5);

//max
BigInteger max = bd1.max(bd2);
System.out.println(max);

//intValue
BigInteger bd6 = BigInteger.valueOf(1000);
int i=bd6.intValue();
System.out.println(i);

BigDecimal

计算机中的小数,是由二进制的整数部分和小数部分组成的。

作用:

用于小数的精确计算,也可以记录很大的小数

构造方法获取BigDecimal对象

Public BigDecimal(double val)

Public BigDecimal(String val)

静态方法获取 BigDecimal对象

public static BigDecimal valueOf(double val)

//1.通过传递double类型的小数来创建对象
//细节:
//这种方式有可能不精确,不建议使用
BigDecimal bd1 = new BigDecimal(0.01);
BigDecimal bd2 = new BigDecimal(0.09);

System.out.println(bd1);
System.out.println(bd2);

//2.通过传递字符串来创建对象
BigDecimal bd3 = new BigDecimal("0.01");
BigDecimal bd4 = new BigDecimal("0.09");
System.out.println(bd3);
System.out.println(bd4);

BigDecimal bd5 = bd3.add(bd4);
System.out.println(bd5);

//3.通过静态方法获取对象
BigDecimal bd6 = BigDecimal.valueOf(10);
BigDecimal bd7 = BigDecimal.valueOf(10);
System.out.println(bd6);
System.out.println(bd6 == bd7);

//细节:
//如果要表示的数字不大,没有超出double的范围,建议使用静态方法
//超出建议用构造方法
//如果传递的是0~10之间的整数,会返回Java已经创建好的对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: BigInteger转换为BigDecimal可以通过BigDecimal的构造函数来实现,将BigInteger作为参数传递给BigDecimal构造函数即可。 例如: BigInteger bigInteger = new BigInteger("12345678901234567890"); BigDecimal bigDecimal = new BigDecimal(bigInteger); 这样就将BigInteger类型的bigInteger转换为了BigDecimal类型的bigDecimal。 ### 回答2: BigIntegerBigDecimal都是Java中处理大数的类。BigInteger表示不可变的任意精度整数,而BigDecimal表示不可变的任意精度十进制数。 要将BigInteger转换为BigDecimal,可以使用BigDecimal的构造方法来完成转换。BigDecimal的构造方法接受一个BigInteger类型的参数,可以直接将BigInteger转换为相应的BigDecimal对象。 以下是将BigInteger对象转换为BigDecimal对象的示例代码: ```java BigInteger bigInteger = new BigInteger("1234567890"); BigDecimal bigDecimal = new BigDecimal(bigInteger); ``` 上述代码中,首先创建了一个BigInteger对象bigInteger,其值为"1234567890"。然后使用BigDecimal的构造方法将bigInteger转换为相应的BigDecimal对象bigDecimal。 通过以上代码,我们成功将BigInteger对象转换为BigDecimal对象。这样就可以继续使用BigDecimal提供的各种方法进行高精度的数值计算。 需要注意的是,由于BigDecimal表示的是十进制数,而BigInteger表示的是整数,所以在转换时可能会导致精度的损失或受到舍入模式的影响。因此,在进行大数计算时,需要根据具体的需求选择合适的转换方式和精度控制。 ### 回答3: 在Java中,BigIntegerBigDecimal是数字处理中非常常用的两个类。BigInteger用于处理任意长度的整数,而BigDecimal用于处理任意精度的小数。 要将BigInteger转换为BigDecimal,可以使用BigDecimal的构造函数。BigDecimal类有一个可以接受BigInteger值的构造函数,这样可以将BigInteger的值转换为BigDecimal。 以下是一个简单的示例代码,演示如何将BigInteger转换为BigDecimal: ```java import java.math.BigDecimal; import java.math.BigInteger; public class BigIntegerToBigDecimal { public static void main(String[] args) { BigInteger bigInteger = new BigInteger("1234567890"); BigDecimal bigDecimal = new BigDecimal(bigInteger); System.out.println("BigInteger: " + bigInteger); System.out.println("BigDecimal: " + bigDecimal); } } ``` 在上述示例中,我们首先创建了一个BigInteger对象(bigInteger),并将其初始化为1234567890。然后,我们使用BigDecimal的构造函数将bigInteger转换为BigDecimal(bigDecimal)。最后,我们将bigIntegerbigDecimal的值输出到控制台上。 输出结果: BigInteger: 1234567890 BigDecimal: 1234567890 通过这种方式,我们可以将BigInteger转换为BigDecimal,用于处理高精度的小数计算。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值