如何在 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?
uj5u.com熱心網友回復:
toBigInt做你需要的。來自檔案
將此 BigDecimal 轉換為 scala.BigInt。
執行以下操作:
new BigInt(this.bigDecimal.toBigInteger)
toBigIntExact如果轉換可以無損地完成,還有回傳一個選項。
uj5u.com熱心網友回復:
用 .toBigInt
val x: BigDecimal = 2.335656787776
x.toBigInt // returns 2
uj5u.com熱心網友回復:
我發現的解決方法是:
val x:BigDecimal = 2.335656787776;
val y = BigInt("%.0f".format(x));
有沒有更好的方法呢?
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/372694.html
標籤:斯卡拉
上一篇:Scala中集合的索引/切片
