Tôi đang cố định dạng một số số trong chương trình Java. Các con số sẽ là cả hai và số nguyên. Khi xử lý tăng gấp đôi, tôi muốn giữ chỉ hai dấu thập phân nhưng khi xử lý số nguyên tôi muốn chương trình giữ chúng không bị ảnh hưởng. Nói cách khác:Java: Sử dụng DecimalFormat để định dạng tăng gấp đôi và số nguyên nhưng giữ số nguyên không có dấu tách thập phân
Doubles - Input
14.0184849945
Doubles - Output
14.01
Số nguyên - Input
13
Số nguyên - Output
13 (not 13.00)
Có cách nào để thực hiện điều này trong cùng một phiên bản DecimalFormat không? Mã của tôi là như sau, cho đến thời điểm này:
DecimalFormat df = new DecimalFormat("#,###,##0.00");
DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols(Locale.ENGLISH);
otherSymbols.setDecimalSeparator('.');
otherSymbols.setGroupingSeparator(',');
df.setDecimalFormatSymbols(otherSymbols);
Tại sao nó phải là như nhau 'DecimalFormat' instance? Có gì sai khi có 2 trường hợp 'DecimalFormat', một để giữ hai chữ số qua dấu thập phân và một không có bất kỳ chữ số nào vượt quá dấu thập phân? – rgettman
Bởi vì các số mà chương trình định dạng mỗi lần là số nguyên hoặc số nguyên, mà không biết loại trước khi hình thành. Vì vậy, tôi muốn cùng một ví dụ mà sẽ "hiểu" cho dù một số là hai lần để cắt thêm dấu thập phân hoặc nó là một số nguyên - để giữ cho nó không bị ảnh hưởng. – Lefteris008