Sto facendo un programma di calcolo grafico in Java e ho un metodo che esegue un'operazione basata sull'input dell'utente e restituisce un doppio da visualizzare in un JTextField
. Tuttavia, vorrei che il risultato fosse visualizzato come un numero intero, senza il seguente numero ".0"
dove non ci sono cifre significative dopo il punto decimale, ma vengono comunque visualizzati i punti decimali quando necessario. Qual è il modo più efficiente per farlo?Non visualizzare i decimali se il doppio è un numero intero?
risposta
È possibile utilizzare DecimalFormat
per sopprimere i personaggi di trascinamento, ad es .:
DecimalFormat format = new DecimalFormat("#.##");
double doubleFromTextField = Double.parseDouble(myField.getText());
System.out.println(format.format(doubleFromTextField));
Questo aiuta a formattare l'output in tutti i casi, ma voglio solo eliminare i decimali finali se il decimale finale è ".0". Come scrivere un condizionale per formattare l'output solo se il doppio è un numero intero? Grazie per l'aiuto. – Zero
Questo esempio fa in effetti ciò che voi chiedete, qualsiasi cifra significativa (diversa da zero) dopo la virgola decimale verrà visualizzata, quindi non c'è bisogno di ulteriori controlli. – Reimeus
Sono così stupido, non ho notato che stava stampando la risposta corretta che volevo nella console invece del JTextField. Grazie Reimeus! – Zero
Forse convertire una stringa e manipolare lì facendo un condizionale se i finali due personaggi sono '.0'? – kush
Come scrivere un condizionale per controllare i caratteri finali? – Zero
Esiste una risposta migliore alla domanda che utilizza [DecimalFormat] (http://docs.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html). Per favore vedi la risposta di Reimeus qui sotto. – kush