Mam problemy z formatowaniem ułamków dziesiętnych podwójnej. Jeśli mam podwójną wartość, np. 4.0, jak sformatować ułamki dziesiętne, aby zamiast tego było 4,00?
java
formatting
double
decimal
Christoffer
źródło
źródło
String.format()
lubjava.text.Format
.Odpowiedzi:
Jednym ze sposobów byłoby użycie NumberFormat .
Wynik:
4.00
źródło
W Javie 8 możesz użyć
format
metody ..: -f
jest używany dofloating
wartość punktowa.2
po przecinku oznacza liczbę miejsc po przecinku.
W przypadku większości wersji Java możesz użyć
DecimalFormat
: -źródło
Użyj formatu String.format :
String.format("%.2f", 4.52135);
Zgodnie z dokumentami:
źródło
Używając String.format, możesz to zrobić:
Zwróć uwagę na przecinek, który odróżnia to od odpowiedzi @ Vincenta
Wynik:
$52,000.00
Dobrym źródłem informacji o formatowaniu jest oficjalna strona Java na ten temat
źródło
Zawsze możesz użyć metody statycznej
printf from System.out
- następnie zaimplementowałbyś odpowiedni program formatujący; oszczędza to miejsce na stosie, na którym wymagały tego inne przykłady.Dawny:
Oszczędza miejsce na stosie, co jest dość dużą zaletą, niemniej jednak uważam, że ten przykład jest znacznie łatwiejszy w zarządzaniu niż jakakolwiek inna odpowiedź, zwłaszcza, że większość programistów zna funkcję printf z C (chociaż Java nieznacznie zmienia funkcję / metodę).
źródło
out
jestPrintStream
.printf
jest to statyczna metodaPrintStream
. Zobacz tutaj ;) Ale mimo to +1.źródło
źródło
Alternatywną metodą jest użycie
setMinimumFractionDigits
metody zNumberFormat
klasy.Tutaj w zasadzie określasz, ile liczb ma się pojawić po przecinku.
Tak więc wkład w postaci
4.0
wyprodukowałby4.00
, zakładając, że podana przez Ciebie kwota wynosi 2.Ale jeśli twój
Double
dane wejściowe zawierają więcej niż określona kwota, zajmie określoną minimalną kwotę, a następnie dodaj jeszcze jedną cyfrę zaokrągloną w górę / w dółNa przykład
4.15465454
przy minimalnej określonej ilości 2 wyprodukuje4.155
Wypróbuj online
źródło
Można to zrobić na wiele sposobów. Poniżej podano:
Załóżmy, że Twój oryginalny numer jest podany poniżej:
Korzystanie z NumberFormat:
Korzystanie z String.format:
Korzystanie z DecimalFormat i wzorca:
Korzystanie z DecimalFormat i wzorca
We wszystkich przypadkach wynik będzie następujący: 2354548,23
Uwaga :
Podczas zaokrąglania możesz dodać
RoundingMode
swój formater. Oto kilka trybów zaokrąglania podanych poniżej:Oto import :
źródło
Możesz użyć dowolnej z poniższych metod
Jeśli używasz
java.text.DecimalFormat
LUB
Jeśli chcesz przekonwertować go na prosty format ciągu
Cały powyższy kod spowoduje wydrukowanie 4,00
źródło
Działa w 100%.
źródło
Pierwszy import
NumberFormat
. Następnie dodaj to:To da ci dwa miejsca po przecinku i umieści znak dolara, jeśli chodzi o walutę.
źródło
Możesz to zrobić w następujący sposób:
źródło
##
zamiast00
Wiem, że to stary temat, ale jeśli naprawdę lubisz mieć kropkę zamiast przecinka, po prostu zapisz swój wynik jako X, 00 w ciągu znaków, a następnie po prostu zmień go na okres, aby otrzymać X,00
Najprostszym sposobem jest użycie zamiany.
Wynik będzie żądanym X.00 . Aby było to łatwiejsze, możesz zrobić to wszystko za jednym razem i zapisać w podwójnej zmiennej:
Wiem, że ta odpowiedź na razie się nie przydaje, ale może ktoś sprawdzający to forum będzie szukał takiego szybkiego rozwiązania.
źródło