Java comportamiento de operación de multiplicación
Escribí un método para convertir un número dado de días a milisegundos:
private long expireTimeInMilliseconds;
...
public void setExpireTimeInDays(int expireTimeInDays)
{
expireTimeInMilliseconds = expireTimeInDays * 24 * 60 * 60 * 1000;
}
Tuve dificultades para descubrir qué hice mal. Ahora mi pregunta: ¿Es ese error tan obvio?
El método corregido:
private long expireTimeInMilliseconds;
...
public void setExpireTimeInDays(int expireTimeInDays)
{
expireTimeInMilliseconds = ((long) expireTimeInDays) * 24 * 60 * 60 * 1000;
}
Si no convierto el entero en mucho antes de calcular, obtengo un resultado completamente incorrecto.