java怎么把BigInteger类型转换为BigDecimal类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java怎么把BigInteger类型转换为BigDecimal类型相关的知识,希望对你有一定的参考价值。

  先将BigInteger类型转为普通整数,然后用BigDecimal.valueOf("普通数值")即可转为BigDecimal类型。
  BigInteger实现了任意精度的整数运算;BigDecimal实现了任意精度的浮点数运算。
参考技术A bigdecimal构造方法可以直接传入int类型
其中 数据库的biginteger在java中也是int(Integer)
参考技术B int a = 1234;
BigDecimal b = new BigDecimal(a);
System.out.println(b);
参考技术C BigInteger i = new BigInteger("12345");
BigDecimal d = new BigDecimal(i);
构造函数可以直接转换的。

java大数--总结

BigInteger(高精度整数)

1、所在包:

java.math.BigInteger

2、大数运算,以下返回类型均为BigInteger

BigInteger a;
BigInteger b;
a.add(b);//大数相加
a.divide(b);//a整除以b
a.mod(b);//a对b取余

3、基本类型转化成大数

BigInteger x = BigInteger.valueOf(n);

4、大数求最大公约数

BigInteger a;
BigInteger b;
a.gcd(b);//返回类型为BigInteger

5、判断相等

BigInteger a;
BigInteger b;
a.compareTo(b) == 0//等于0则相等

String

(1)将x当成10进制转化为base进制的用字符串表示的数s

String s = Integer.toString(x, base);

(2)将字符串s所表示的数当成base进制转化为10进制数的int类型的x

int x = Integer.parseInt(s, base);

(3)将base进制的字符串s转化成10进制的大数x。若base与s可能的进制数不一致,会报错。

BigInter x = new BigInteger(s, base); 

注意: s是base进制的,举例

String s1 = new String("1A");
BigInteger m1 = new BigInteger(s1, 16);//m1为26
String s2 = new String("11111");
BigInteger m2 = new BigInteger(s2, 2);//m2为31

PS:

1、这种输入可能更快点

import java.io.*;
Scanner sc = new Scanner(new BufferedInputStream(System.in));

2、读一整行

String s = sc.nextLine();

 

以上是关于java怎么把BigInteger类型转换为BigDecimal类型的主要内容,如果未能解决你的问题,请参考以下文章

java中BigDecimal和bigInteger如何转换

java怎么把16进制的数转换为10进制的

java 类型转换 String转BigInteger

请问,java里,如何把BigDecimal类型转成Integer

java大数--总结

BigInteger简析