En Java, quiero convertir un doble en un entero, sé que si haces esto:
double x = 1.5;
int y = (int)x;
obtienes y = 1. Si haces esto:
int y = (int)Math.round(x);
Probablemente obtendrá 2. Sin embargo, me pregunto: dado que las representaciones dobles de enteros a veces se ven como 1.9999999998 o algo así, ¿existe la posibilidad de que lanzar un doble creado a través de Math.round () aún resulte en un número truncado hacia abajo, en lugar de que el número redondeado que estamos buscando (es decir: 1 en lugar de 2 en el código como se representa)?
(y sí, lo digo como tal: ¿hay algún valor para x, donde y mostrará un resultado que es una representación truncada en lugar de redondeada de x?)
Si es así: ¿Existe una mejor manera de convertir un doble en un int redondeado sin correr el riesgo de truncamiento?
Pensé algo: Math.round (x) devuelve una longitud, no un doble. Por lo tanto: es imposible que Math.round () devuelva un número similar a 3.9999998. Por lo tanto, int (Math.round ()) nunca necesitará truncar nada y siempre funcionará.