Java - Formatear numeros a monedas

 
Vista:

Formatear numeros a monedas

Publicado por Carlos (1 intervención) el 30/12/2005 19:30:53
Hola.
Quisiera mostrar un numero de tipo double a el tipo de moneda configurado en mi equipo
por ejemplo:

1345678.67 se muestre S/. 1,345,678.67

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Formatear numeros a monedas

Publicado por Alberto (78 intervenciones) el 02/01/2006 10:05:34
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
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar