import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.text.NumberFormat; import java.util.Currency; import java.util.Locale; public class CustomDecimalFormat { public static DecimalFormat prepareFormat(char decimalSeparator, char thousandSeparator, boolean forceFraction, byte decimalPlaces){ String pattern = "#,###."; if(decimalPlaces <= 0){ pattern = pattern.substring(0, pattern.length() - 1); } else if (forceFraction) { for (byte i = 0; i < decimalPlaces; i++) { pattern += "0"; } } else { for (byte i = 0; i < decimalPlaces; i++) { pattern += "#"; } } DecimalFormatSymbols symbols = new DecimalFormatSymbols(Locale.US); symbols.setDecimalSeparator(decimalSeparator); symbols.setGroupingSeparator(thousandSeparator); DecimalFormat decimalFormat = new DecimalFormat(pattern, symbols); return decimalFormat; } public static void test(){ DecimalFormat decimalFormat = prepareFormat(',', '.', false, (byte) 2); System.out.println(decimalFormat.format(1521119122.346)); // 1.521.119.122,35 } }