Ver Mensaje Individual
  #5 (permalink)  
Antiguo 05/04/2003, 05:57
Avatar de cofyman
cofyman
 
Fecha de Ingreso: noviembre-2002
Ubicación: Murcia - Spain
Mensajes: 17
Antigüedad: 21 años, 5 meses
Puntos: 0
De acuerdo Esta funcion te puede servir hasta 999

Muy buena esa tradución JavierB , aunque con algunos fallos, esta es la misma funcion pero creo haberlos corregido.
Espero que sirva, aunque solo llega hasta el 999 si alguien se anima que la continue

Código PHP:
function letras ($num) {
    
$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');

    
$linea "";
    
$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 laa decenas
    
$uni $num - ($dec*10) - ($cen*100);   //Cifra de las unidades
    
if ($cen 0) {
        if (
$num == 100$linea "cien";
        else 
$linea $centena[$cen-1].' ';
    }
//end if
    
if ($doble>0) {
        if (
$doble == 20) {
            
$linea .= " veinte";
        }elseif ((
$doble 16) and ($doble>9)) {
            
$linea .= $decenas[$doble-10];
        }else {
            
$linea .=' '$decena[$dec-1];
        }
//end if
        
if ($dec>and $uni<>0$linea .=' y ';
        if ((
$uni>0) and ($doble>15) or ($dec==0)) {
            if (
$uni == 1$linea.="uno";
            else 
$linea.=$unidad[$uni-1];
        }
     }
return 
$linea;
}
//end function letras