Convertir Double en Long en Java

1. Vue d'ensemble

Dans ce didacticiel, nous explorerons différentes méthodes pour convertir du double au long en Java.

2. Utilisation de la diffusion de type

Voyons un moyen simple de convertir le double en long en utilisant l'opérateur de cast:

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

L'application de l' opérateur de transtypage (long) sur une valeur double 9999,999 donne 9999.

Il s'agit d'une conversion primitive restrictive car nous perdons en précision. Lorsqu'un double est converti en long , le résultat reste le même, à l'exclusion de la virgule décimale.

3. Utilisation de Double.longValue

Maintenant, nous allons explorer Double de méthode intégrée LongValue pour convertir un deux à une longue :

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

Comme nous pouvons le voir, l'application de la méthode longValue sur une valeur double 9999,999 donne 9999. En interne, la méthode longValue effectue une conversion simple .

4. Utilisation des méthodes mathématiques

Enfin, voyons comment convertir un double en long à l' aide des méthodes round, ceil et floor de la classe Math :

Vérifions d'abord Math.round. Cela donne une valeur la plus proche de l'argument:

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

Deuxièmement, les mathématiques. ceil donnera la plus petite valeur supérieure ou égale à l'argument:

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

D'un autre côté, Math.floor fait exactement le contraire de Math.ceil. Cela renvoie la plus grande valeur inférieure ou égale à l'argument:

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

Notez que Math.ceil et Math.round renvoient une valeur double , mais dans les deux cas, la valeur renvoyée équivaut à une valeur longue .

5. Conclusion

Dans cet article, nous avons discuté de diverses méthodes pour convertir un double en long en Java. Il est conseillé de comprendre le comportement de chaque méthode avant de l'appliquer à du code critique.

Le code source complet de ce didacticiel est disponible à l'adresse over sur GitHub.