Sto provando a formattare alcuni numeri in un programma Java. I numeri saranno sia doppi che interi. Quando gestisco i duplicati, voglio mantenere solo due decimali, ma quando gestisco gli interi voglio che il programma li mantenga inalterato. In altre parole:Java: utilizzare DecimalFormat per formattare i doppi e gli interi ma mantenere interi senza separatore decimale
Doubles - Ingresso
14.0184849945
Doubles - Uscita
14.01
interi - Ingresso
13
interi - Uscita
13 (not 13.00)
Esiste un modo per implementarlo nella stessa istanza DecimalFormat? Il mio codice è il seguente, finora:
DecimalFormat df = new DecimalFormat("#,###,##0.00");
DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols(Locale.ENGLISH);
otherSymbols.setDecimalSeparator('.');
otherSymbols.setGroupingSeparator(',');
df.setDecimalFormatSymbols(otherSymbols);
Perché deve essere lo stesso Istanza 'DecimalFormat'? Cosa c'è di sbagliato nell'avere 2 istanze di 'DecimalFormat', una per mantenere due cifre oltre il punto decimale e una per non avere cifre oltre il punto decimale? – rgettman
Poiché i numeri che il programma formatta ogni volta sono doppi o interi, senza conoscere il tipo prima della formazione. Quindi, voglio la stessa istanza che "comprenderà" se un numero è doppio - per tagliare punti decimali extra - o è un numero intero - per mantenerlo inalterato. – Lefteris008