开发者

scala won't take a 12-digit integer

开发者 https://www.devze.com 2023-01-14 06:24 出处:网络
ok so I\'m just getting started in scala.. ran into a weird problem with a large number. import Math._

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.

0

精彩评论

暂无评论...
验证码 换一张
取 消