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"))
我是 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"))