在这篇博文中,我们将通过实例来学习如何将BigInteger转换为BigDecimal。
BigInteger和BigDecimal的例子
整数、长数和双数是基本的数字类型,用于存储有限范围内的数值,以进行基本的算术运算。BigInteger用于存储大的数值。BigDecimal用于存储正确的精度和四舍五入的数字,在金融应用中精度是很重要的。BigInteger和BigDecimal是java.math包中的类。
你也可以查看我以前关于java中BigInteger类的文章。
如何在java中把BigInteger转换为BigDecimal?
我们有两种方法可以将BigInteger转换为BigDecimal。
使用BigDecimal构造函数
BigDecimal有一个构造函数,接受BigInteger值并返回bigDecimal值 BigDecimal(BigInteger unscaled value) 零刻度的BigDecimal(BigInteger unscaled value, int scaledValue) 转换为带刻度的bigdeimal,如果给定的刻度为负数,则会产生NumberFormatException。
BigInteger biginteger = new BigInteger("4785961234");
BigDecimal bd = new BigDecimal(biginteger);
System.out.println(bd);
BigInteger biginteger1 = new BigInteger("78459789");
BigDecimal bd1 = new BigDecimal(biginteger1,2);
System.out.println(bd1);
输出
4785961234
784597.89
使用BigDecimal.valueOf方法
这将转换为BigDecimal。唯一的限制是,如果bigintger包含一个更大的数字,如下图所示,它将给出一个错误的数字作为intValue使用,你可以在valueOf方法中使用BigInteger的intValue或longValue。
BigInteger bi = new BigInteger("789456");
BigDecimal bd = BigDecimal.valueOf(bi.longValue());
System.out.println(bd);
BigInteger bi1 = new BigInteger("78945612312312312312312");
BigDecimal bd1 = BigDecimal.valueOf(bi1.longValue());
System.out.println(bd1);
输出
789456
-6452323164568604168
如何在java中把BigDecimal转换为BigInteger?
当我们将BigDecimal转换为BigInteger时,bigdecimal的精度将被丢弃,并使用toBigInteger()方法返回Biginteger形式的双数/长数值 BigDecimal提供了toBigInteger()方法--这将转换为BigInteger。
BigDecimal bigDecimal = new BigDecimal("457695216.89566");
BigInteger bigInteger=bigDecimal.toBigInteger();
System.out.println(bigInteger);
希望你能理解java中Biginteger和BIgDecimal的转换。