在scala中无法将字符串转换为long

Pro*_*err 7 scala

为什么我不能将以下字符串转换为long?我想在scala中这样做.

var a = "153978017952566571852"

val b = a.toLong  
Run Code Online (Sandbox Code Playgroud)

当我尝试转换它时,我得到NumberFormatException

Psi*_*dom 9

因为该数字超过了Long Integer的限制,从-9223372036854775808到9223372036854775807,最多19位,而您的字符串包含21位数字.


如果不必确切,可以将其转换为FloatDouble:

scala> val b = a.toFloat
b: Float = 1.5397802E20

scala> val b = a.toDouble
b: Double = 1.5397801795256658E20
Run Code Online (Sandbox Code Playgroud)

  • 你也可以考虑使用BigInt:`BigInt("153978017952566571852")` (3认同)