Próbuję sformatować niektóre liczby w programie Java. Liczby będą zarówno podwójne, jak i całkowite. Podczas obsługi podwajania, chcę zachować tylko dwie cyfry po przecinku, ale podczas obsługi liczb całkowitych chcę, aby program nie wpływał na nie. Innymi słowy:Java: Użyj formatu DecimalFormat do formatowania liczb podwójnych i całkowitych, ale zachowaj liczby całkowite bez separatora dziesiętnego.
Doubles - Wejście
14.0184849945
Doubles - Wyjście
14.01
Integers - Wejście
13
Integers - Wyjście
13 (not 13.00)
Czy istnieje sposób wdrożenia tego w samej instancji DecimalFormat? Mój kod jest następujący, jak na razie:
DecimalFormat df = new DecimalFormat("#,###,##0.00");
DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols(Locale.ENGLISH);
otherSymbols.setDecimalSeparator('.');
otherSymbols.setGroupingSeparator(',');
df.setDecimalFormatSymbols(otherSymbols);
Dlaczego to musi być takie same Instancja "DecimalFormat"? Co jest nie tak z posiadaniem 2 wystąpień "DecimalFormat", jeden, aby zachować dwie cyfry za przecinkiem dziesiętnym, a jeden nie ma żadnych cyfr za przecinkiem dziesiętnym? – rgettman
Ponieważ liczby, które program formatuje za każdym razem są liczbami podwójnymi lub liczbami całkowitymi, bez znajomości typu przed formacją. Tak więc chcę tego samego wystąpienia, które "zrozumie", czy liczba jest podwójna - do przycinania dodatkowych miejsc po przecinku - lub jest liczbą całkowitą - aby zachować to bez wpływu. – Lefteris008