将 BigDecimal 转换为 BigInt Scala
Convert BigDecimal to BigInt Scala
如何在 Scala 中将 BigDecimal 转换为 BigInt?
我正在尝试 运行 以下代码:
val x:BigDecimal = 2.335656787776;
val y = new BigInt(x);
我得到的错误是:
Found: (PlayGround.x : BigDecimal)
Required: java.math.BigInteger
而当我这样做时:
val x:BigDecimal = 2.335656787776;
val y = BigInt(x);
我得到:
None of the overloaded alternatives of method apply in object BigInt with types
(x: java.math.BigInteger): BigInt
(x: String, radix: Int): BigInt
(x: String): BigInt
(numbits: Int, rnd: scala.util.Random): BigInt
(bitlength: Int, certainty: Int, rnd: scala.util.Random): BigInt
(signum: Int, magnitude: Array[Byte]): BigInt
(x: Array[Byte]): BigInt
(l: Long): BigInt
(i: Int): BigInt
match arguments ((PlayGround.x : BigDecimal))
如何将 BigDecimal 转换为 BigInt?
我找到的解决方法是:
val x:BigDecimal = 2.335656787776;
val y = BigInt("%.0f".format(x));
有没有更好的方法呢?
val x: BigDecimal = 2.335656787776
x.toBigInt // returns 2
toBigInt
满足您的需求。来自 docs
Converts this BigDecimal to a scala.BigInt.
执行以下操作:
new BigInt(this.bigDecimal.toBigInteger)
还有toBigIntExact
其中returns一个选项,如果转换可以无损完成的话。
如何在 Scala 中将 BigDecimal 转换为 BigInt?
我正在尝试 运行 以下代码:
val x:BigDecimal = 2.335656787776;
val y = new BigInt(x);
我得到的错误是:
Found: (PlayGround.x : BigDecimal)
Required: java.math.BigInteger
而当我这样做时:
val x:BigDecimal = 2.335656787776;
val y = BigInt(x);
我得到:
None of the overloaded alternatives of method apply in object BigInt with types
(x: java.math.BigInteger): BigInt
(x: String, radix: Int): BigInt
(x: String): BigInt
(numbits: Int, rnd: scala.util.Random): BigInt
(bitlength: Int, certainty: Int, rnd: scala.util.Random): BigInt
(signum: Int, magnitude: Array[Byte]): BigInt
(x: Array[Byte]): BigInt
(l: Long): BigInt
(i: Int): BigInt
match arguments ((PlayGround.x : BigDecimal))
如何将 BigDecimal 转换为 BigInt?
我找到的解决方法是:
val x:BigDecimal = 2.335656787776;
val y = BigInt("%.0f".format(x));
有没有更好的方法呢?
val x: BigDecimal = 2.335656787776
x.toBigInt // returns 2
toBigInt
满足您的需求。来自 docs
Converts this BigDecimal to a scala.BigInt.
执行以下操作:
new BigInt(this.bigDecimal.toBigInteger)
还有toBigIntExact
其中returns一个选项,如果转换可以无损完成的话。