FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Convertir numero en cadena
alguien me puede indicar en donde conseguir el algoritmo en java para convertir una cantidad numerica en una cadena??
1245.00 = Mil doscientos Cuarenta y cinco |
#2
|
|||
|
|||
#3
|
|||
|
|||
Hola a todos.
A pesar de que no es tan difícil desarrollar el código (un poco de iniciativa e imaginación, chic@s!!!) o en su defecto, buscarlo en la red (no dudo que debe ser sencillo encontrarlo), aquí os dejo un mini-ejemplo de la conversión de números a cadenas. No es que me lo hayan pedido mis innumerables fans, es que me he dado cuenta de que este hilo es bastante visitado y al buscar en el google por las palabras java+convertir+numero+string me he dado cuenta de que el primer enlace que sale, es precisamente el de este thread . Espero que os sea útil o al menos os sirva de orientación. Saludos. Código:
public class conversionNumeroEnCadena { private int flag; public int numero; public String num; public String num_letra; public String num_letras; public String num_letram; public conversionNumeroEnCadena(){ numero = 0; flag=0; } public conversionNumeroEnCadena(int n){ numero = n; flag=0; } private String unidad(int numero){ switch (numero){ case 9: num = "nueve"; break; case 8: num = "ocho"; break; ........... ........... case 2: num = "dos"; break; case 1: if (flag == 0) num = "uno"; else num = "un"; break; case 0: num = ""; break; } return num; } private String decena(int numero){ if (numero >= 90 && numero <= 99) { num_letra = "noventa "; if (numero > 90) num_letra = num_letra.concat("y ").concat(unidad(numero - 90)); } else if (numero >= 80 && numero <= 89) { num_letra = "ochenta "; if (numero > 80) num_letra = num_letra.concat("y ").concat(unidad(numero - 80)); } ........... ........... if (numero == 20) num_letra = "veinte "; else num_letra = "veinti".concat(unidad(numero - 20)); } else if (numero >= 10 && numero <= 19) { switch (numero){ case 10: num_letra = "diez "; break; case 11: num_letra = "once "; break; case 12: num_letra = "doce "; break; .............. .............. case 19: num_letra = "diecinueve "; break; } } else num_letra = unidad(numero); return num_letra; } private String centena(int numero){ if (numero >= 100) { if (numero >= 900 && numero <= 999) { num_letra = "novecientos "; if (numero > 900) num_letra = num_letra.concat(decena(numero - 900)); } else if (numero >= 800 && numero <= 899) { num_letra = "ochocientos "; if (numero > 800) num_letra = num_letra.concat(decena(numero - 800)); } ........... ........... else if (numero >= 200 && numero <= 299) { num_letra = "doscientos "; if (numero > 200) num_letra = num_letra.concat(decena(numero - 200)); } else if (numero >= 100 && numero <= 199) { if (numero == 100) num_letra = "cien "; else num_letra = "ciento ".concat(decena(numero - 100)); } } else num_letra = decena(numero); return num_letra; } private String miles(int numero){ if (numero >= 1000 && numero <2000){ num_letram = ("mil ").concat(centena(numero%1000)); } if (numero >= 2000 && numero <10000){ flag=1; num_letram = unidad(numero/1000).concat("mil").concat (centena(numero%1000)); } if (numero < 1000) num_letram = centena(numero); return num_letram; } public String convertirLetras(int numero){ num_letras = miles(numero); return num_letras; } } Última edición por santana fecha: 26-05-2004 a las 18:24:56. |
#4
|
||||
|
||||
Esto es "pseudojava", pero traducirlo a "pure java" es sencillo. Faltaría tratar los casos especiales como el "once", "doce"... pero de todas maneras creo que así queda más sencillo
Código:
public static String[] literales = [ ["", "uno", "dos", "tres",..., "nueve"], ["", "diez", "veinte", ... "noventa"], ["", "ciento", "doscientos", "trescientos"...], ... ] public static String tranforma(int num){ int cont = 0; int div = num; String res = ""; while ( div > 0){ res = literales[cont][div % 10] + res; div = int / 10; //esto se ha de truncar a int... pero ahora mismo no recuerdo como se hacía cont ++; } return(res); }
__________________
E pur si muove Última edición por marto fecha: 26-05-2004 a las 18:45:24. |
#5
|
|||
|
|||
gracias por el codigo santana lo buscaba desde hace tiempo, crees que puedas agregar la parte de los millones, decenas y centenas de 1000 y los decimales, realmente lo necesito para un proyecto
PD: tengo un problema cuando lo complete y corri en java salia "ilegar start of type" cuando decia if o else if Última edición por chikipow fecha: 24-10-2007 a las 04:18:34. |
#6
|
||||
|
||||
Nada tio
Cita:
Que no sabes lo que es PSEUDOCODIGO?
__________________
"Porque es tan idiotamente sorda la fé y tan ciego el que cree?".
|
#7
|
|||
|
|||
realmente no mucho, apenas estoy empezando a programar
|
#8
|
||||
|
||||
Pues deberias estudiar un poco mas, ah y por cierto ya vistes la fecha de este hilo¿¿¿
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
|
|
|