Quelle est la meilleure façon de convertir un double en un long sans couler ?
Par exemple :
double d = 394.000;
long l = (new Double(d)).longValue();
System.out.println("double=" + d + ", long=" + l);
Quelle est la meilleure façon de convertir un double en un long sans couler ?
Par exemple :
double d = 394.000;
long l = (new Double(d)).longValue();
System.out.println("double=" + d + ", long=" + l);
En supposant que vous êtes satisfait de la troncature vers zéro, il suffit de lancer :
double d = 1234.56;
long x = (long) d; // x = 1234
Cela sera plus rapide que de passer par les classes wrapper - et surtout, c'est plus lisible. Maintenant, si vous avez besoin d'arrondir autre chose que "toujours vers zéro", vous aurez besoin d'un code un peu plus compliqué.
L'approche privilégiée devrait être :
Double.valueOf(d).longValue()
De la [Documentation sur Double (Java Platform SE 7)](http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html#valueOf(double) :
Double.valueOf(d)
Retourne un
Double
représentant l'instance spécifiéedouble
valeur. Si une nouvelleDouble
n'est pas nécessaire, cette méthode devrait généralement être utilisée de préférence au constructeurDouble(double)
, car cette méthode est susceptible d'offrir de bien meilleures performances spatiales et temporelles en mettant en cache les valeurs fréquemment demandées. en mettant en cache les valeurs fréquemment demandées.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.