scala won't take a 12-digit integer
ok so I'm just getting started in scala.. ran into a weird problem with a large number.
import Math._
var num:Long=0
num+=600851475
num*=1000
println(num)
that code works fine, yet the following doesn't compile with an error saying the integer is too large.
import Math._
var num:Long=0
num+=600851475000
println(num)
what's up? can scala not handle a 12-d开发者_StackOverflow社区igit number? :/
Your constant should be 600851475000L
Even though num is declared to be a Long, 600851475000 is read by the compiler to be an Int, which can only handle numbers in [-2^32, 2^32) [-2^31, 2^31). Writing the number as 600851475000L tells the compiler to treat it as a Long, which will handle numbers up to about 18 digits.
Without L
(or l
) suffix, the literal's value is treated as a 32-bit int.
精彩评论