In Java, voglio convertire un doppio in un numero intero, so se lo fai:
double x = 1.5;
int y = (int)x;
ottieni y = 1. Se lo fai:
int y = (int)Math.round(x);
Probabilmente otterrai 2. Tuttavia, mi chiedo: poiché le rappresentazioni doppie di interi a volte sembrano 1.9999999998 o qualcosa del genere, esiste la possibilità che il casting di un doppio creato tramite Math.round () risulti comunque in un numero troncato, piuttosto rispetto al numero arrotondato che stiamo cercando (es .: 1 invece di 2 nel codice come rappresentato)?
(e sì, lo intendo come tale: esiste un valore per x, dove y mostrerà un risultato che è una rappresentazione troncata anziché arrotondata di x?)
In tal caso: esiste un modo migliore per trasformare un double in un int arrotondato senza correre il rischio di troncamento?
Ho capito qualcosa: Math.round (x) restituisce un long, non un double. Quindi: è impossibile per Math.round () restituire un numero simile a 3.9999998. Pertanto, int (Math.round ()) non avrà mai bisogno di troncare nulla e funzionerà sempre.