En Java, quiero convertir un doble a un entero, sé que si usted hace esto:conversión doble de número entero en java
double x = 1.5;
int y = (int)x;
que presentamos lo mejor y = 1. Si hace esto:
int y = (int)Math.round(x);
probablemente obtendrá 2. Sin embargo, me pregunto: desde dobles representaciones de números enteros a veces se ven como 1,9999999998 o algo así, ¿existe la posibilidad de que echando una doble creados a través de Math.round() aún resultará en un número de reducción truncado, en lugar del número redondeado que estamos buscando (es decir: 1 en lugar de 2 en el código como se representa)?
(y sí, me refiero a que, como tal: ¿Hay cualquier valor para x, donde y mostrará un resultado que es un truncada en lugar de una representación cabal de x?)
Si es así: ¿Hay una manera mejor de convertir un doble en un int redondeado sin correr el riesgo de truncamiento?
Robusto algo: Math.round (x) devuelve un largo, no una doble. Por lo tanto: es imposible para Math.round() devolver un número que se parezca a 3.9999998. Por lo tanto, int (Math.round()) nunca necesitará truncar nada y siempre funcionará.
Math.round (doble) devuelve un largo, no un doble. – qbert220