Tema: FAQ's de PHP
Ver Mensaje Individual
  #124 (permalink)  
Antiguo 27/10/2004, 09:26
Avatar de The_Dark_Roy
The_Dark_Roy
 
Fecha de Ingreso: enero-2004
Mensajes: 218
Antigüedad: 20 años, 10 meses
Puntos: 0
¿como Pasar un numero a palabras?

Pregunta:¿Como pasar numero a palabras?
Respuesta:Esta Funcion es Demasiado Buena. La Busque en los faq y no la encontre asiq ue tuvimos que hacerla, y como no soy amargao ni apretao aqui esta.

Bueno esta funcion la necesitaba para Imprimir un Comprobante de pago al cual aparate del monto en digitos habia que imprimirlo con palabras.
Código PHP:

$numeros 
=    array("-""uno""dos""tres""cuatro""cinco""seis""siete""ocho""nueve");
        
$numerosX =   array("-""un""dos""tres""cuatro""cinco""seis""siete""ocho""nueve");
        
$numeros100 = array("-""ciento""doscientos""trecientos""cuatrocientos""quinientos""seicientos""setecientos""ochocientos""novecientos");
        
$numeros11 =  array("-""once""doce""trece""catorce""quince""dieciseis""diecisiete""dieciocho""diecinueve");
        
$numeros10 =  array("-""-""-""treinta""cuarenta""cincuenta""sesenta""setenta""ochenta""noventa");

        function 
tresnumeros($n$last) {
            global 
$numeros100$numeros10$numeros11$numeros$numerosX;
            if (
$n == 100) return "cien ";
            if (
$n == 0) return "cero ";
            
$r "";
            
$cen floor($n 100);
            
$dec floor(($n 100) / 10);
            
$uni $n 10;
            if (
$cen 0$r .= $numeros100[$cen] . " ";

            switch (
$dec) {
                case 
0$special 0; break;
                case 
1$special 10; break;
                case 
2$special 20; break;
                default: 
$r .= $numeros10[$dec] . " "$special 30; break;
            }
            if (
$uni == 0) {
                if (
$special==30);
                else if (
$special==20$r .= "veinte ";
                else if (
$special==10$r .= "diez ";
                else if (
$special==0);
            } else {
                if (
$special == 30 && !$last$r .= "y " $numerosX[$n%10] . " ";
                else if (
$special == 30$r .= "y " $numeros[$n%10] . " ";
                else if (
$special == 20) {
                    if (
$uni == 3$r .= "veintitrés ";
                    else if (!
$last$r .= "veinti" $numerosX[$n%10] . " ";
                    else 
$r .= "veinti" $numeros[$n%10] . " ";
                } else if (
$special == 10$r .= $numeros11[$n%10] . " ";
                else if (
$special == && !$last$r .= $numerosX[$n%10] . " ";
                else if (
$special == 0$r .= $numeros[$n%10] . " ";
            }
            return 
$r;
        }

        function 
seisnumeros($n$last) {
            if (
$n == 0) return "cero ";
            
$miles floor($n 1000);
            
$units $n 1000;
            
$r "";
            if (
$miles == 1$r .= "mil ";
            else if (
$miles 1$r .= tresnumeros($milesfalse) . "mil ";
            if (
$units 0$r .= tresnumeros($units$last);
            return 
$r;
        }

        function 
docenumeros($n) {
            if (
$n == 0) return "cero ";
            
$millo floor($n 1000000);
            
$units $n 1000000;
            
$r "";
            if (
$millo == 1$r .= "un millón ";
            else if (
$millo 1$r .= seisnumeros($millofalse) . "millones ";
            if (
$units 0$r .= seisnumeros($unitstrue);
            return 
$r;
        } 
la funcion que se usa es docenumeros($numero)

ojala les sirva....
__________________
ojala te hayas quitado la venda

http://www.surire.cl
http://www.uta.cl

Última edición por The_Dark_Roy; 28/10/2004 a las 08:06