![]() |
![]() |
| Paypal | 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
|
||||
|
||||
|
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 |
![]() |
|
|
|