Scala 中的大整数

Big Int in scala

我是 Scala 的新手。我正在尝试为一个简单的阶乘函数创建一个测试用例。 我无法在 assert 语句中分配结果值。我越来越 Integer number is out of range even for type Long IntelliJ 错误。

  test("Factorial.factorial6") {

    assert(Factorial.factorial(25) == 15511210043330985984000000L)
  }

我还尝试使用 'L' 文字将值分配给 val,它再次显示相同 留言。

val b: BigInt = 15511210043330985984000000L

我显然缺少有关 Scala 的一些基本知识,非常感谢您的帮助,以解决此问题

您提供的值确实大于 Long 中所能容纳的值,这是 Scala 中文字值的最大大小。但是,您可以使用包含以下值的 String 来初始化 BigInt

val b = BigInt("15511210043330985984000000")

因此

assert(Factorial.factorial(25) == BigInt("15511210043330985984000000"))