2012-11-02 20 views
8

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?

+1

Forse convertire una stringa e manipolare lì facendo un condizionale se i finali due personaggi sono '.0'? – kush

+0

Come scrivere un condizionale per controllare i caratteri finali? – Zero

+1

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

risposta

8

È 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)); 
+0

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

+2

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

+1

Sono così stupido, non ho notato che stava stampando la risposta corretta che volevo nella console invece del JTextField. Grazie Reimeus! – Zero