Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/02/2006, 06:24
Avatar de 8461277
8461277
 
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 5 meses
Puntos: 1
Pasar nuemro a letras?

se que a lo mejor este tema esta trillado, encontre en este foro un codigo que funciona bien pasa de numero a letras pero no los decimales solo entero por lo que necesito si se pueden tambien sacad los decimales de un numero real. El codigo que esta aqui en el foro es:

numero.inc.php

Código PHP:
<?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','CINTO','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


?>
numero.php

Código PHP:
<?php
include ("numeros.inc.php"); 
$numero=11252
//$numero="$ 6,125,652.11"; 

echo numerotexto($numero); 
echo 
"<br>" 
//numerotexto($ejemplo2); 

?>
alguien me puede ayudar plissss o decirme como puedo resolve mi problema
__________________
Miguel Padrón :cool: