En Java, je veux convertir un double en entier, je sais si vous faites ceci:
double x = 1.5;
int y = (int)x;
vous obtenez y = 1. Si tu fais ça:
int y = (int)Math.round(x);
Vous en obtiendrez probablement 2. Cependant, je me demande: puisque les doubles représentations d'entiers ressemblent parfois à 1,9999999998 ou quelque chose du genre, y a-t-il une possibilité que le casting d'un double créé via Math.round () aboutisse toujours à un nombre tronqué, plutôt que le nombre arrondi recherché (ie: 1 au lieu de 2 dans le code comme représenté)?
(et oui, je le pense en tant que tel: y a-t-il une valeur pour x, où y affichera un résultat qui est une représentation tronquée plutôt qu'une représentation arrondie de x?)
Si c'est le cas: existe-t-il une meilleure façon de transformer un double en un entier arrondi sans courir le risque de troncature?
Compris quelque chose: Math.round (x) renvoie un long, pas un double. Par conséquent: il est impossible pour Math.round () de renvoyer un nombre ressemblant à 3.9999998. Par conséquent, int (Math.round ()) n'aura jamais besoin de tronquer quoi que ce soit et fonctionnera toujours.