Por favor escriba en esta.en Scala, largo, int, etc.
scala> 86400000 * 150
res0: Int = 75098112
scala> val i : Long = 86400000 * 150
i: Long = 75098112
val i = 86400000 * 150.asInstanceOf[Long]
i: Long = 12960000000
val i = 86400000 * 150L
i: Long = 12960000000
Lo que en el mundo está pasando aquí? He estado haciendo paracaidismo y debo decir que esto es lo más peligroso que he visto en mi vida. ¿No hay un compilador que compruebe esto? Obviamente si estuviera sustituyendo 150 por una variable que es diferente.
* * EDITAR
Este era el código real que me tiene preocupado.
val oneDay = 86400000
val days150 = oneDay * 150
days150 = 75098112
Esto no fue culpa de Scala o de cualquier persona, excepto la mía. Me tienes preocupado.
No vota esta pregunta hacia abajo. Es una pregunta legítima y el desbordamiento de enteros es muy peligroso y causa problemas reales con programas reales. El hecho de que sea común en muchos idiomas y no solo en Scala no lo hace ir abajo, merece la pena votar. –
Cuando realmente necesitas números realmente grandes, siempre hay [BigInteger] (http://docs.oracle.com/javase/1.5.0/docs/api/java/math/BigInteger.html). Es un poco torpe, pero funciona. –
Votado para cerrar; esto es más una farsa que una pregunta. Los diversos ejemplos ilustran que el interlocutor ya sabe exactamente lo que está sucediendo: desbordamiento de enteros. –