Bonjour,
Mon problème est le suivant :
Comment convertir/arrondir proprement et efficacement un double en int ?
Je fais des calculs mathématiques sur des double.
Je dois ensuite utiliser les résultats pour des affichages graphiques sous Swing 2D (g2.draw())
Je dois donc préalablement convertir mes double en int.
J'ai essayé un :Le compilateur renvoie une erreur "possible loss of precision".
Code : Sélectionner tout - Visualiser dans une fenêtre à part int i = (int) monDouble;
Certes ! Je le sais bien. Je suis conscient que je perds en précision : je souhaite en fait arrondir mon double en int.
La seule méthode que j'ai trouvée pour l'instant est :C'est-à-dire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public int doubleToInt(double monDouble) { long l = Math.round(monDouble); String s = ""+l; int i; try { i = Integer.parseInt(s); } catch (NumberFormatException e) { if (l<0) { i = Integer.MIN_VALUE; } else { i = Integer.MAX_VALUE; } } return i; }
double -> long par Math.round()
long -> String
String -> int
Je sais, ce n'est pas beau. Connaissez-vous une méthode plus propre, et surtout plus efficace ?
Merci d'avance,
Cordialement,
Nicolas
Partager