Convertir doble a largo en Java

1. Información general

En este tutorial, exploraremos varios métodos para convertir de doble a largo en Java.

2. Usando Type Casting

Veamos una forma sencilla de convertir el doble en largo usando el operador de conversión:

Assert.assertEquals(9999, (long) 9999.999);

La aplicación del operador de conversión (larga) en un valor doble 9999,999 da como resultado 9999.

Esta es una conversión primitiva que se estrecha porque estamos perdiendo precisión. Cuando un doble se convierte en largo , el resultado seguirá siendo el mismo, excluyendo el punto decimal.

3. Usando Double.longValue

Ahora, exploremos el método incorporado longValue de Double para convertir un doble en un largo :

Assert.assertEquals(9999, Double.valueOf(9999.999).longValue());

Como podemos ver, la aplicación del método longValue en un valor doble 9999,999 produce 9999. Internamente, el método longValue está realizando una conversión simple .

4. Uso de métodos matemáticos

Finalmente, veamos cómo convertir un doble en largo usando los métodos round, ceil y floor de la clase Math :

Primero revisemos Math.round. Esto produce un valor más cercano al argumento:

Assert.assertEquals(9999, Math.round(9999.0)); Assert.assertEquals(9999, Math.round(9999.444)); Assert.assertEquals(10000, Math.round(9999.999));

En segundo lugar, matemáticas. ceil producirá el valor más pequeño que sea mayor o igual que el argumento:

Assert.assertEquals(9999, Math.ceil(9999.0), 0); Assert.assertEquals(10000, Math.ceil(9999.444), 0); Assert.assertEquals(10000, Math.ceil(9999.999), 0);

Por otro lado, Math.floor hace exactamente lo contrario de Math.ceil. Esto devuelve el valor más grande que es menor o igual que el argumento:

Assert.assertEquals(9999, Math.floor(9999.0), 0); Assert.assertEquals(9999, Math.floor(9999.444), 0); Assert.assertEquals(9999, Math.floor(9999.999), 0);

Tenga en cuenta que tanto Math.ceil como Math.round devuelven un valor doble , pero en ambos casos, el valor devuelto es equivalente a un valor largo .

5. Conclusión

En este artículo, hemos discutido varios métodos para convertir el doble en largo en Java. Es aconsejable comprender cómo se comporta cada método antes de aplicarlo al código de misión crítica.

El código fuente completo de este tutorial está disponible en GitHub.