2012-11-02 12 views
8

Wykonuję program kalkulatora graficznego w języku Java i stosuję metodę, która wykonuje operację na podstawie danych wprowadzonych przez użytkownika, i zwraca wartość podwójną, która ma być wyświetlana w postaci JTextField. Jednak chciałbym, aby wynik był wyświetlany jako liczba całkowita, bez następującego po nim ".0", gdzie po kropce dziesiętnej nie ma żadnych cyfr znaczących, ale w razie potrzeby nadal wyświetlane są kropki dziesiętne. Jaki jest najskuteczniejszy sposób na zrobienie tego?Niewyświetlanie liczb dziesiętnych, jeśli podwójne jest liczbą całkowitą?

+1

Może konwertować na ciąg i manipulować go tam poprzez warunkowe jeśli końcowe dwie postacie są '.0'? – kush

+0

Jak napisać warunkowe, aby sprawdzić znaki końcowe? – Zero

+1

Istnieje lepsza odpowiedź na pytanie, które używa [DecimalFormat] (http://docs.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html). Zobacz odpowiedź Reimeusa poniżej. – kush

Odpowiedz

8

Można użyć DecimalFormat do tłumienia znaki spływu, np .:

DecimalFormat format = new DecimalFormat("#.##"); 
double doubleFromTextField = Double.parseDouble(myField.getText()); 
System.out.println(format.format(doubleFromTextField)); 
+0

To pomaga w formatowaniu danych wyjściowych we wszystkich przypadkach, ale chcę tylko wyeliminować końcowe znaki dziesiętne, jeśli końcowy tekst dziesiętny ma wartość ".0". Jak napisać wyrażenie warunkowe, aby sformatować tylko dane wyjściowe, jeśli double jest liczbą całkowitą? Dzięki za pomoc. – Zero

+2

W tym przykładzie robi się to, o co prosisz, każda znacząca (niezerowa) cyfra po kropce dziesiętnej zostanie wyświetlona, ​​więc nie ma potrzeby dodatkowych kontroli. – Reimeus

+1

Jestem taki głupi, nie zauważyłem, że drukowałem poprawną odpowiedź, którą chciałem do konsoli zamiast JTextField. Dziękuję, Reimeus! – Zero

Powiązane problemy