Foros del Web » Programando para Internet » Javascript »

Pasar de numeros a letras

Estas en el tema de Pasar de numeros a letras en el foro de Javascript en Foros del Web. Hola gente. Ando buscando una funcion para convertir cantidades en letras 1.000.000 = un millon quienientos mil por ejemplo Estuve buscando mucho por internet y ...
  #1 (permalink)  
Antiguo 06/07/2005, 15:58
 
Fecha de Ingreso: noviembre-2003
Ubicación: Paraguay
Mensajes: 382
Antigüedad: 20 años, 5 meses
Puntos: 4
Pasar de numeros a letras

Hola gente.

Ando buscando una funcion para convertir cantidades en letras
1.000.000 = un millon quienientos mil por ejemplo

Estuve buscando mucho por internet y no lo encuentro y como estoy medio apurado no lo puedo hacer jeje.

Sera que tienen idea de donde conseguirlo?
  #2 (permalink)  
Antiguo 07/07/2005, 11:35
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 21 años, 5 meses
Puntos: 317
Hola micayael :

Je. No con esa forma. Deberías hacer una base con todos los nombres de números desde '0' hasta infinito...

Lo que sí se puede es

1234 = uno dos tres cuatro.

pero no creo que te sirva.

Ah!; 1.000.000 no es igual a un millon quienientos mil.

saludos

furoya
  #3 (permalink)  
Antiguo 07/07/2005, 16:13
 
Fecha de Ingreso: noviembre-2003
Ubicación: Paraguay
Mensajes: 382
Antigüedad: 20 años, 5 meses
Puntos: 4
jeje. error de imprenta furoya.

Yo se como se hace la aplicacion pero es muy larga y necesito algo rapido. Lo que necesito es alguna funcion ya hecha para usarla.

Eso es lo que pregunto
  #4 (permalink)  
Antiguo 07/07/2005, 16:40
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 2 meses
Puntos: 10
hola micayael.. se que este va a ser un post bastante inproductivo pero es para decirte que yo en algun lugar que ahora no recuerdo he visto una funcion para hacer lo que estas buscando... asi que a seguri buscando.

Si me acuerdo te escribo de nuevo.
__________________
oohh... quisiera ser godines!!!
  #5 (permalink)  
Antiguo 08/07/2005, 07:19
 
Fecha de Ingreso: noviembre-2003
Ubicación: Paraguay
Mensajes: 382
Antigüedad: 20 años, 5 meses
Puntos: 4
Y yo creo que si, si es que las respuestas siguen como la tuya safe. De todos modos gracias por preocuparte y ojala lo recuerdes.

Un abrazo
  #6 (permalink)  
Antiguo 08/07/2005, 08:21
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 2 meses
Puntos: 10
Bueno micayael, al final recorde donde habia visto lo que te dije.. lamentablemente era una funcion de PHP.
Te la dejo por las dudas te sirva para darte una idea y ver si la puedes pasar a javascript.

Código PHP:
<? 

function numerotexto ($numero) { 
    
// Primero tomamos el numero y le quitamos los caracteres especiales y extras 
    // Dejando solamente el punto "." que separa los decimales 
    // Si encuentra mas de un punto, devuelve error. 
    // NOTA: Para los paises en que el punto y la coma se usan de forma 
    // inversa, solo hay que cambiar la coma por punto en el array de "extras" 
    // y el punto por coma en el explode de $partes 
     
    
$extras= array("/[\$]/","/ /","/,/","/-/"); 
    
$limpio=preg_replace($extras,"",$numero); 
    
$partes=explode(".",$limpio); 
    if (
count($partes)>2) { 
        return 
"Error, el n&uacute;mero no es correcto"
        exit(); 
    } 
     
    
// Ahora explotamos la parte del numero en elementos de un array que 
    // llamaremos $digitos, y contamos los grupos de tres digitos 
    // resultantes 
     
    
$digitos_piezas=chunk_split ($partes[0],1,"#"); 
    
$digitos_piezas=substr($digitos_piezas,0,strlen($digitos_piezas)-1); 
    
$digitos=explode("#",$digitos_piezas); 
    
$todos=count($digitos); 
    
$grupos=ceil (count($digitos)/3); 
     
    
// comenzamos a dar formato a cada grupo 
     
    
$unidad = array   ('un','dos','tres','cuatro','cinco','seis','siete','ocho','nueve'); 
    
$decenas = array ('diez','once','doce''trece','catorce','quince'); 
    
$decena = array   ('dieci','veinti','treinta','cuarenta','cincuenta','sesenta','setenta','ochenta','noventa'); 
    
$centena = array   ('ciento','doscientos','trescientos','cuatrocientos','quinientos','seiscientos','setecientos','ochocientos','novecientos'); 
    
$resto=$todos
     
    for (
$i=1$i<=$grupos$i++) { 
         
        
// Hacemos el grupo 
        
if ($resto>=3) { 
            
$corte=3; } else { 
            
$corte=$resto
        } 
            
$offset=(($i*3)-3)+$corte
            
$offset=$offset*(-1); 
         
        
// la siguiente seccion es una adaptacion de la contribucion de cofyman y JavierB 
         
        
$num=implode("",array_slice ($digitos,$offset,$corte)); 
        
$resultado[$i] = ""
        
$cen = (int) ($num 100);              //Cifra de las centenas 
        
$doble $num - ($cen*100);             //Cifras de las decenas y unidades 
        
$dec = (int)($num 10) - ($cen*10);    //Cifra de las decenas 
        
$uni $num - ($dec*10) - ($cen*100);   //Cifra de las unidades 
        
if ($cen 0) { 
           if (
$num == 100$resultado[$i] = "cien"
           else 
$resultado[$i] = $centena[$cen-1].' '
        }
//end if 
        
if ($doble>0) { 
           if (
$doble == 20) { 
              
$resultado[$i] .= " veinte"
           }elseif ((
$doble 16) and ($doble>9)) { 
              
$resultado[$i] .= $decenas[$doble-10]; 
           }else { 
              
$resultado[$i] .=' '$decena[$dec-1]; 
           }
//end if 
           
if ($dec>and $uni<>0$resultado[$i] .=' y '
           if ((
$uni>0) and ($doble>15) or ($dec==0)) { 
              if (
$i==&& $uni == 1$resultado[$i].="uno"
              elseif (
$i==&& $num == 1$resultado[$i].=""
              else 
$resultado[$i].=$unidad[$uni-1]; 
           } 
        } 

        
// Le agregamos la terminacion del grupo 
        
switch ($i) { 
            case 
2
            
$resultado[$i].= ($resultado[$i]=="") ? "" " mil "
            break; 
            case 
3
            
$resultado[$i].= ($num==1) ? " mill&oacute;n " " millones "
            break; 
        } 
        
$resto-=$corte
    } 
     
    
// Sacamos el resultado (primero invertimos el array) 
    
$resultado_invarray_reverse($resultadoTRUE); 
    
$final=""
    foreach (
$resultado_inv as $parte){ 
        
$final.=$parte
    } 
    return 
$final


echo 
numerotexto(12536);
?>

Saludos
__________________
oohh... quisiera ser godines!!!
  #7 (permalink)  
Antiguo 10/07/2005, 07:49
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 21 años, 5 meses
Puntos: 317
Cita:
Iniciado por micayael
... jeje. error de imprenta furoya. ...
Por supuesto, micayael, éso es más que evidente.

Hice el comentario de mala persona que soy, no más.

Y hablando de malas per... -digo- de cosas evidentes, no hace falta ser lingüista para intuir que ésto es practicamente imposible. A menos que empecemos a acotar los rangos; como que solamente lea en español, que reconozca nada más que valores enteros, que ignore todo número mayor que 100, 1000, 10000..., o hasta donde el escript nos parezca manejable. El ejemplo de safe() es muy claro en eso.

Supongo que para extraer el script bastará con poner el documento en un servidor y abrirlo desde nuestra máquina para copiar el código fuente. Pero no me hagas mucho caso porque de PHP no entiendo nada.

saludos

furoya

P.D. : Ahora que lo pienso, quizá con inteligencia artificial se le pueda enseñar a hacer ésto a una máquina. En algunos años quizás aprenda a contar correctamente... ¿ Hasta que número sabes contar tú, micayael ?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:35.