import java.text.DecimalFormat;
public class Asdf {
public static void main(String[] args) {
DecimalFormat format = new DecimalFormat();
format.setDecimalSeparatorAlwaysShown(false);
Double asdf = 2.0;
Double asdf2 = 2.11;
Double asdf3 = 2000.11;
System.out.println(format.format(asdf));
System.out.println(format.format(asdf2));
System.out.println(format.format(asdf3));
}
}
drukuje:
2
2.11
2,000.11
Korzystanie
DecimalFormat format=new DecimalFormat("#.#"); //not okay!!!
nie jest właściwe, ponieważ psuje z 10^10^3, 6, itd separatory.
2.000,11 będzie wyświetlany jako „2000,11” zamiast „2,000.11”
To oczywiście, jeśli chcesz wyświetlać numery odpowiednio sformatowane, nie tylko przy użyciu niewłaściwego toString().
Należy również pamiętać, że formatowanie może różnić, w zależności użytkownicy regionalnych i DecimalFormat należy odpowiednio zainicjowany przy użyciu metody fabryki z Locale użytkownika jako argument:
NumberFormat f = NumberFormat.getInstance(loc);
if (f instanceof DecimalFormat) {
((DecimalFormat) f).setDecimalSeparatorAlwaysShown(true);
}
http://download.oracle.com/javase/1.5.0/docs/api/java/text/DecimalFormat.html
UPDATE Ten formatowania string działa również bez wywoływania dodatkowej metody:
DecimalFormat format=new DecimalFormat("#,###.#");
//format.setDecimalSeparatorAlwaysShown(false);
Konwersja do liczby całkowitej? –
Zamknięcie tego pytania jest nieprawidłowe, ponieważ nie jest to ogólne pytanie "Jak sformatować liczbę w języku Java", ale pytanie dotyczące określonego stylu formatowania. – MarianP
Powinien raczej być duplikatem http://stackoverflow.com/questions/703396/how-to-nicely-format-floating-types-to-string – rds