Ich mache ein grafisches Taschenrechner-Programm in Java und habe eine Methode, die eine Operation basierend auf Benutzereingaben ausführt und ein Double zurückgibt, um in einer JTextField
angezeigt zu werden. Ich möchte jedoch, dass das Ergebnis als ganze Zahl ohne folgende ".0"
angezeigt wird, wo keine signifikanten Stellen hinter dem Dezimalpunkt stehen, aber bei Bedarf immer noch Dezimalpunkte anzeigen. Was ist der effizienteste Weg, dies zu tun?Keine Dezimalstellen angezeigt, wenn double eine ganze Zahl ist?
Antwort
Sie DecimalFormat
zur Unterdrückung der hinteren Zeichen verwenden können, z.B .:
DecimalFormat format = new DecimalFormat("#.##");
double doubleFromTextField = Double.parseDouble(myField.getText());
System.out.println(format.format(doubleFromTextField));
Das hilft bei der Formatierung der Ausgabe in allen Fällen, aber ich möchte nur die Nachkommastellen eliminieren, wenn die Nachkommastelle ".0" ist. Wie würde ich eine Bedingung schreiben, um die Ausgabe nur zu formatieren, wenn das Double eine ganze Zahl ist? Danke für Ihre Hilfe. – Zero
Dieses Beispiel macht tatsächlich das, wonach Sie fragen. Bedeutende (nicht null) Ziffern nach dem Dezimalpunkt werden angezeigt, so dass keine zusätzlichen Prüfungen erforderlich sind. – Reimeus
Ich bin so dumm, ich habe nicht bemerkt, dass es die richtige Antwort gedruckt hat, die ich in die Konsole anstelle von JTextField wollte. Danke Reimeus! – Zero
- 1. angezeigten Nullen, außer wenn eine ganze Zahl
- 2. Array Index ist keine ganze Zahl
- 3. Wie testen, ob ein Double eine ganze Zahl ist
- 4. Bash: Testen, wenn eine Variable eine ganze Zahl ist
- 5. C# Double - ToString() - Formatierung mit zwei Dezimalstellen, aber keine Rundung
- 6. g ++: gebunden Array keine ganze Zahl ist konstant
- 7. Increment eine ganze Zahl
- 8. Aufrunden Zahl mit Dezimalstellen
- 9. Check in eine ganze Zahl ist teilbar durch eine andere ganze Zahl (Swift)
- 10. PHP mt_rand nicht eine ganze Zahl
- 11. Eine Zahl auf angegebene Dezimalstellen abschneiden
- 12. Ein Double auf die nächste ganze Zahl aufrunden
- 13. html input type = Zahl erlaubt keine Dezimalstellen bei bestimmten Droiden
- 14. Linux kann keine ganze Zahl ist, kodiert von BitConverter.GetBytes read()
- 15. eine ganze Zahl in Xslt
- 16. Wie vorzuverlegen eine ganze Zahl
- 17. Konvertieren eine ganze Zahl base36
- 18. Wenn ein Double mit einem ganzzahligen Wert in eine ganze Zahl umgewandelt wird, ist es dann garantiert "richtig"?
- 19. Wie man eine Zahl auf eine gewählte ganze Zahl rundet
- 20. MongoDB haben eine ganze Zahl immer positiv
- 21. Wie kann mit BigDecimal eine Zahl mit immer 2 Dezimalstellen angezeigt werden?
- 22. Ruby runden float to_int wenn ganze Zahl
- 23. Anzeigenummer mit Dezimalstellen statt ganzer Zahl
- 24. Ganze Zahl vierstellig nach Zahl
- 25. Teilungsbruch ergibt keine Dezimalstellen
- 26. Apache POI - Nummer als ganze Zahl erhalten
- 27. Eine Zeichenfolge in eine ganze Zahl aufteilen
- 28. Umwandlung einer Elixir-Zahl in Exponentialschreibweise in eine ganze Zahl
- 29. SQL - Test, wenn numerisches Feld eine ganze Zahl
- 30. Wie ziehe ich eine ganze Zahl aus einem NSDictionary und lege sie in eine ganze Zahl?
Vielleicht in einen String konvertieren und manipulieren es eine bedingte, indem sie, wenn die hinteren zwei Zeichen sind '.0'? – kush
Wie würde ich eine Bedingung schreiben, um die nachfolgenden Zeichen zu überprüfen? – Zero
Es gibt eine bessere Antwort auf die Frage, die [DecimalFormat] (http://docs.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html) verwendet. Bitte sehen Sie die Antwort von Reimeus unten. – kush