Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/04/2010, 07:08
maxwellxp
 
Fecha de Ingreso: abril-2010
Mensajes: 143
Antigüedad: 14 años
Puntos: 0
Respuesta: problema funcion numeros a letra

Código PHP:
Ver original
  1. }
  2.     else if ($numero >= 20 && $numero <= 29)
  3.     {
  4.         if ($numero == 20)
  5.             $num_letra = "veinte ";
  6.         else
  7.             $num_letra = "veinti".unidad($numero - 20);
  8.     }
  9.     else if ($numero >= 10 && $numero <= 19)
  10.     {
  11.         switch ($numero)
  12.         {
  13.             case 10:
  14.             {
  15.                 $num_letra = "diez ";
  16.                 break;
  17.             }
  18.             case 11:
  19.             {
  20.                 $num_letra = "once ";
  21.                 break;
  22.             }
  23.             case 12:
  24.             {
  25.                 $num_letra = "doce ";
  26.                 break;
  27.             }
  28.             case 13:
  29.             {
  30.                 $num_letra = "trece ";
  31.                 break;
  32.             }
  33.             case 14:
  34.             {
  35.                 $num_letra = "catorce ";
  36.                 break;
  37.             }
  38.             case 15:
  39.             {
  40.                 $num_letra = "quince ";
  41.                 break;
  42.             }
  43.             case 16:
  44.             {
  45.                 $num_letra = "dieciseis ";
  46.                 break;
  47.             }
  48.             case 17:
  49.             {
  50.                 $num_letra = "diecisiete ";
  51.                 break;
  52.             }
  53.             case 18:
  54.             {
  55.                 $num_letra = "dieciocho ";
  56.                 break;
  57.             }
  58.             case 19:
  59.             {
  60.                 $num_letra = "diecinueve ";
  61.                 break;
  62.             }
  63.         }
  64.     }
  65.     else
  66.         $num_letra = unidad($numero);
  67.  
  68.     return $num_letra;
  69. }
  70.  
  71. function centena($numero)
  72. {
  73.     if ($numero >= 100)
  74.     {
  75.         if ($numero >= 900 & $numero <= 999)
  76.         {
  77.             $num_letra = "novecientos ";
  78.            
  79.             if ($numero > 900)
  80.                 $num_letra = $num_letra.decena($numero - 900);
  81.         }
  82.         else if ($numero >= 800 && $numero <= 899)
  83.         {
  84.             $num_letra = "ochocientos ";
  85.            
  86.             if ($numero > 800)
  87.                 $num_letra = $num_letra.decena($numero - 800);
  88.         }
  89.         else if ($numero >= 700 && $numero <= 799)
  90.         {
  91.             $num_letra = "setecientos ";
  92.            
  93.             if ($numero > 700)
  94.                 $num_letra = $num_letra.decena($numero - 700);
  95.         }
  96.         else if ($numero >= 600 && $numero <= 699)
  97.         {
  98.             $num_letra = "seiscientos ";
  99.            
  100.             if ($numero > 600)
  101.                 $num_letra = $num_letra.decena($numero - 600);
  102.         }
  103.         else if ($numero >= 500 && $numero <= 599)
  104.         {
  105.             $num_letra = "quinientos ";
  106.            
  107.             if ($numero > 500)
  108.                 $num_letra = $num_letra.decena($numero - 500);
  109.         }
  110.         else if ($numero >= 400 && $numero <= 499)
  111.         {
  112.             $num_letra = "cuatrocientos ";
  113.            
  114.             if ($numero > 400)
  115.                 $num_letra = $num_letra.decena($numero - 400);
  116.         }
  117.         else if ($numero >= 300 && $numero <= 399)
  118.         {
  119.             $num_letra = "trescientos ";
  120.            
  121.             if ($numero > 300)
  122.                 $num_letra = $num_letra.decena($numero - 300);
  123.         }
  124.         else if ($numero >= 200 && $numero <= 299)
  125.         {
  126.             $num_letra = "doscientos ";
  127.            
  128.             if ($numero > 200)
  129.                 $num_letra = $num_letra.decena($numero - 200);
  130.         }
  131.         else if ($numero >= 100 && $numero <= 199)
  132.         {
  133.             if ($numero == 100)
  134.                 $num_letra = "cien ";
  135.             else
  136.                 $num_letra = "ciento ".decena($numero - 100);
  137.         }
  138.     }
  139.     else
  140.         $num_letra = decena($numero);
  141.    
  142.     return $num_letra;
  143. }
  144.  
  145. function cien()
  146. {
  147.     global $importe_parcial;
  148.    
  149.     $parcial = 0; $car = 0;
  150.    
  151.     while (substr($importe_parcial, 0, 1) == 0)
  152.         $importe_parcial = substr($importe_parcial, 1, strlen($importe_parcial) - 1);
  153.    
  154.     if ($importe_parcial >= 1 && $importe_parcial <= 9.99)
  155.         $car = 1;
  156.     else if ($importe_parcial >= 10 && $importe_parcial <= 99.99)
  157.         $car = 2;
  158.     else if ($importe_parcial >= 100 && $importe_parcial <= 999.99)
  159.         $car = 3;
  160.    
  161.     $parcial = substr($importe_parcial, 0, $car);
  162.     $importe_parcial = substr($importe_parcial, $car);
  163.    
  164.     $num_letra = centena($parcial).centimos();
  165.    
  166.     return $num_letra;
  167. }
  168.  
  169. function cien_mil()
  170. {
  171.     global $importe_parcial;
  172.    
  173.     $parcial = 0; $car = 0;
  174.    
  175.     while (substr($importe_parcial, 0, 1) == 0)
  176.         $importe_parcial = substr($importe_parcial, 1, strlen($importe_parcial) - 1);
  177.    
  178.     if ($importe_parcial >= 1000 && $importe_parcial <= 9999.99)
  179.         $car = 1;
  180.     else if ($importe_parcial >= 10000 && $importe_parcial <= 99999.99)
  181.         $car = 2;
  182.     else if ($importe_parcial >= 100000 && $importe_parcial <= 999999.99)
  183.         $car = 3;
  184.    
  185.     $parcial = substr($importe_parcial, 0, $car);
  186.     $importe_parcial = substr($importe_parcial, $car);
  187.    
  188.     if ($parcial > 0)
  189.     {
  190.         if ($parcial == 1)
  191.             $num_letra = "mil ";
  192.         else
  193.             $num_letra = centena($parcial)." mil ";
  194.     }
  195.    
  196.     return $num_letra;
  197. }
  198.  
  199.  
  200. function millon()
  201. {
  202.     global $importe_parcial;
  203.    
  204.     $parcial = 0; $car = 0;
  205.    
  206.     while (substr($importe_parcial, 0, 1) == 0)
  207.         $importe_parcial = substr($importe_parcial, 1, strlen($importe_parcial) - 1);
  208.    
  209.     if ($importe_parcial >= 1000000 && $importe_parcial <= 9999999.99)
  210.         $car = 1;
  211.     else if ($importe_parcial >= 10000000 && $importe_parcial <= 99999999.99)
  212.         $car = 2;
  213.     else if ($importe_parcial >= 100000000 && $importe_parcial <= 999999999.99)
  214.         $car = 3;
  215.    
  216.     $parcial = substr($importe_parcial, 0, $car);
  217.     $importe_parcial = substr($importe_parcial, $car);
  218.    
  219.     if ($parcial == 1)
  220.         $num_letras = "un millón ";
  221.     else
  222.         $num_letras = centena($parcial)." millones ";
  223.    
  224.     return $num_letras;
  225. }
  226.  
  227. function convertir_a_letras($numero)
  228. {
  229.     global $importe_parcial;
  230.    
  231.     $importe_parcial = $numero;
  232.    
  233.     if ($numero < 1000000000)
  234.     {
  235.         if ($numero >= 1000000 && $numero <= 999999999.99)
  236.             $num_letras = millon().cien_mil().cien();
  237.         else if ($numero >= 1000 && $numero <= 999999.99)
  238.             $num_letras = cien_mil().cien();
  239.         else if ($numero >= 1 && $numero <= 999.99)
  240.             $num_letras = cien();
  241.         else if ($numero >= 0.01 && $numero <= 0.99)
  242.         {
  243.             if ($numero == 0.01)
  244.                 $num_letras = "un centavo";
  245.             else
  246.                 $num_letras = convertir_a_letras(($numero * 100)."/100")." centavos";
  247.         }
  248.     }
  249.     return $num_letras;
  250. }
la parte q faltaba de la funcion...