为什么我不能将以下字符串转换为long?我想在scala中这样做。
var a = "153978017952566571852"
val b = a.toLong
当我尝试转换它时,我得到NumberFormatException
答案 0 :(得分:9)
因为数字超过了从 -9223372036854775808到9223372036854775807 的长整数限制,最多19个数字,而你的字符串包含21位数字。
如果您不必准确,可以将其转换为 Float 或 Double :
scala> val b = a.toFloat
b: Float = 1.5397802E20
scala> val b = a.toDouble
b: Double = 1.5397801795256658E20