RE:Formatear numeros a monedas
Date cuenta que no es lo mismo en euros que en dolares.
Para poner 1345678.67 ó 1345678,67
Euros: 1.345.678,67 €
Dolares: $1,345,678.67
En un principio tendrás que realizar un estándar de entrada de datos. Elige para los decimales coma o punto.
Luego decir a que moneda quieres pasarlo se a Euros o a Dolares.
ejem: elegimos siempre el punto como decimal:
String moneda = 1345678.67;
String formato = "Euros"
StringTokenizer tokens=new StringTokenizer(nombre, ".");
int nDatos=tokens.countTokens();
//Lo pasamos a un array
String[] datos=new String [nDatos];
String formatoMoneda = "";
while(tokens.hasMoreTokens()){
String str=tokens.nextToken();
datos[i]=str;
System.out.println(datos[i]);
i++;
}
//Si hay más de 2 es un error de entrada. Solo tiene que haber un punto.
String parte = ",'; //coma
if (nDatos < 2) {
String parteEntera = datos[0];
parteDecimal = datos[1];
formatoMoneda = parteEntera
longParteEntera = datos[0].length;
int i=longParteEntera;
while (i>2) {
longParteEntera = formatoMoneda.length;
i = i-3;
formatoMoneda = formatoMoneda.substring(0, i) +"."
formatoMoneda.substring(i, longParteEntera);
}
if (formato.equals("Euros")){ //1111.111,11
formatoMoneda = formatoMoneda + "," + parteDecimal;
} else { //1111,111.11
formatoMoneda.replace(".", ",");
formatoMoneda = formatoMoneda + "." +parteDecimal;
}
} else //ERROR