Solución:
Puede cambiar el separador configurando una configuración regional o utilizando DecimalFormatSymbols.
Si desea que el separador de agrupación sea un punto, puede usar una configuración regional europea:
NumberFormat nf = NumberFormat.getNumberInstance(Locale.GERMAN);
DecimalFormat df = (DecimalFormat)nf;
Alternativamente, puede usar la clase DecimalFormatSymbols para cambiar los símbolos que aparecen en los números formateados producidos por el método de formato. Estos símbolos incluyen el separador decimal, el separador de agrupación, el signo menos y el signo de porcentaje, entre otros:
DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols(currentLocale);
otherSymbols.setDecimalSeparator(',');
otherSymbols.setGroupingSeparator('.');
DecimalFormat df = new DecimalFormat(formatString, otherSymbols);
currentLocale se puede obtener de Locale.getDefault () es decir:
Locale currentLocale = Locale.getDefault();
Europa es bastante grande. No estoy seguro de si usan el mismo formato en todas partes. Sin embargo, esta o esta respuesta serán de ayuda.
String text = "1,234567";
NumberFormat nf_in = NumberFormat.getNumberInstance(Locale.GERMANY);
double val = nf_in.parse(text).doubleValue();
NumberFormat nf_out = NumberFormat.getNumberInstance(Locale.UK);
nf_out.setMaximumFractionDigits(3);
String output = nf_out.format(val);
Es decir, use la configuración regional correcta.
public String getGermanCurrencyFormat(double value) {
NumberFormat nf = NumberFormat.getNumberInstance(Locale.GERMAN);
nf.setGroupingUsed(true);
return "€ " + nf.format(value);
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)