将15位数字分配给Scala BigInt

问题描述 投票:1回答:1

我在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

有任何解决方法吗?

scala variable-assignment bigint
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.