为Scala BigInt分配15位数字

时间:2018-12-25 23:11:27

标签: scala

我要在Scala中声明一个类型为BigInt的变量,并初始化一个10位数字。

scala> var key: BigInt = 1234567890
key: BigInt = 1234567890

当我通过对同一key变量进行乘法来创建另一个变量时,默认情况下,新变量的类型为BigInt,并带有更多数字。

scala> var key_multp = key * key
key_multp: scala.math.BigInt = 1524157875019052100

当我尝试为BigInt类型的变量分配15位数字的值时,它将引发错误。如何直接为BigInt类型的变量分配15位数字的值?

scala> var key:BigInt = 123456789012345
<console>:1: error: integer number too large
var key = 123456789012345

有什么解决方法吗?

1 个答案:

答案 0 :(得分:0)

随着即将到来的Scala 3Dotty)和对numeric literals的改进,您可以按照直观的尝试分配BigInt

val big: BigInt = 1524157875019052100
// 1524157875019052100

,甚至带分隔符:

val big: BigInt = 1_524_157_875_019_052_100
// 1524157875019052100

或者,如前所述,在Scala 3之前,在String的构造函数上使用BigInt

val big: BigInt = BigInt("1524157875019052100")
// 1524157875019052100