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

Código PHP:
Ver original
  1. function centimos()
  2. {
  3.     global $importe_parcial;
  4.  
  5.     $importe_parcial = number_format($importe_parcial, 2, ".", "") * 100;
  6.  
  7.     if ($importe_parcial > 0)
  8.         $num_letra = " con ".decena_centimos($importe_parcial);
  9.     else
  10.         $num_letra = "";
  11.  
  12.     return $num_letra;
  13. }
  14.  
  15. function unidad_centimos($numero)
  16. {
  17.     switch ($numero)
  18.     {
  19.         case 9:
  20.         {
  21.             $num_letra = "nueve centavos";
  22.             break;
  23.         }
  24.         case 8:
  25.         {
  26.             $num_letra = "ocho centavos";
  27.             break;
  28.         }
  29.         case 7:
  30.         {
  31.             $num_letra = "siete centavos";
  32.             break;
  33.         }
  34.         case 6:
  35.         {
  36.             $num_letra = "seis centavos";
  37.             break;
  38.         }
  39.         case 5:
  40.         {
  41.             $num_letra = "cinco centavos";
  42.             break;
  43.         }
  44.         case 4:
  45.         {
  46.             $num_letra = "cuatro centavos";
  47.             break;
  48.         }
  49.         case 3:
  50.         {
  51.             $num_letra = "tres centavos";
  52.             break;
  53.         }
  54.         case 2:
  55.         {
  56.             $num_letra = "dos centavos";
  57.             break;
  58.         }
  59.         case 1:
  60.         {
  61.             $num_letra = "un centavo";
  62.             break;
  63.         }
  64.     }
  65.     return $num_letra;
  66. }
  67.  
  68. function decena_centimos($numero)
  69. {
  70.     if ($numero >= 10)
  71.     {
  72.         if ($numero >= 90 && $numero <= 99)
  73.         {
  74.               if ($numero == 90)
  75.                   return "noventa centavos";
  76.               else if ($numero == 91)
  77.                   return "noventa y un centavos";
  78.               else
  79.                   return "noventa y ".unidad_centimos($numero - 90);
  80.         }
  81.         if ($numero >= 80 && $numero <= 89)
  82.         {
  83.             if ($numero == 80)
  84.                 return "ochenta centavos";
  85.             else if ($numero == 81)
  86.                 return "ochenta y un centavos";
  87.             else
  88.                 return "ochenta y ".unidad_centimos($numero - 80);
  89.         }
  90.         if ($numero >= 70 && $numero <= 79)
  91.         {
  92.             if ($numero == 70)
  93.                 return "setenta centavos";
  94.             else if ($numero == 71)
  95.                 return "setenta y un centavos";
  96.             else
  97.                 return "setenta y ".unidad_centimos($numero - 70);
  98.         }
  99.         if ($numero >= 60 && $numero <= 69)
  100.         {
  101.             if ($numero == 60)
  102.                 return "sesenta centavos";
  103.             else if ($numero == 61)
  104.                 return "sesenta y un centavos";
  105.             else
  106.                 return "sesenta y ".unidad_centimos($numero - 60);
  107.         }
  108.         if ($numero >= 50 && $numero <= 59)
  109.         {
  110.             if ($numero == 50)
  111.                 return "cincuenta centavos";
  112.             else if ($numero == 51)
  113.                 return "cincuenta y un centavos";
  114.             else
  115.                 return "cincuenta y ".unidad_centimos($numero - 50);
  116.         }
  117.         if ($numero >= 40 && $numero <= 49)
  118.         {
  119.             if ($numero == 40)
  120.                 return "cuarenta centavos";
  121.             else if ($numero == 41)
  122.                 return "cuarenta y un centavos";
  123.             else
  124.                 return "cuarenta y ".unidad_centimos($numero - 40);
  125.         }
  126.         if ($numero >= 30 && $numero <= 39)
  127.         {
  128.             if ($numero == 30)
  129.                 return "treinta centavos";
  130.             else if ($numero == 91)
  131.                 return "treinta y un centavos";
  132.             else
  133.                 return "treinta y ".unidad_centimos($numero - 30);
  134.         }
  135.         if ($numero >= 20 && $numero <= 29)
  136.         {
  137.             if ($numero == 20)
  138.                 return "veinte centavos";
  139.             else if ($numero == 21)
  140.                 return "veintiun centavos";
  141.             else
  142.                 return "veinti".unidad_centimos($numero - 20);
  143.         }
  144.         if ($numero >= 10 && $numero <= 19)
  145.         {
  146.             if ($numero == 10)
  147.                 return "diez centavos";
  148.             else if ($numero == 11)
  149.                 return "once centavos";
  150.             else if ($numero == 12)
  151.                 return "doce centavos";
  152.             else if ($numero == 13)
  153.                 return "trece centavos";
  154.             else if ($numero == 14)
  155.                 return "catorce centavos";
  156.             else if ($numero == 15)
  157.                 return "quince centavos";
  158.             else if ($numero == 16)
  159.                 return "dieciseis centavos";
  160.             else if ($numero == 17)
  161.                 return "diecisiete centavos";
  162.             else if ($numero == 18)
  163.                 return "dieciocho centavos";
  164.             else if ($numero == 19)
  165.                 return "diecinueve centavos";
  166.         }
  167.     }
  168.     else
  169.         return unidad_centimos($numero);
  170. }
  171.  
  172. function unidad($numero)
  173. {
  174.     switch ($numero)
  175.     {
  176.         case 9:
  177.         {
  178.             $num = "nueve";
  179.             break;
  180.         }
  181.         case 8:
  182.         {
  183.             $num = "ocho";
  184.             break;
  185.         }
  186.         case 7:
  187.         {
  188.             $num = "siete";
  189.             break;
  190.         }
  191.         case 6:
  192.         {
  193.             $num = "seis";
  194.             break;
  195.         }
  196.         case 5:
  197.         {
  198.             $num = "cinco";
  199.             break;
  200.         }
  201.         case 4:
  202.         {
  203.             $num = "cuatro";
  204.             break;
  205.         }
  206.         case 3:
  207.         {
  208.             $num = "tres";
  209.             break;
  210.         }
  211.         case 2:
  212.         {
  213.             $num = "dos";
  214.             break;
  215.         }
  216.         case 1:
  217.         {
  218.             $num = "uno";
  219.             break;
  220.         }
  221.     }
  222.     return $num;
  223. }
  224.  
  225. function decena($numero)
  226. {
  227.     if ($numero >= 90 && $numero <= 99)
  228.     {
  229.         $num_letra = "noventa ";
  230.        
  231.         if ($numero > 90)
  232.             $num_letra = $num_letra."y ".unidad($numero - 90);
  233.     }
  234.     else if ($numero >= 80 && $numero <= 89)
  235.     {
  236.         $num_letra = "ochenta ";
  237.        
  238.         if ($numero > 80)
  239.             $num_letra = $num_letra."y ".unidad($numero - 80);
  240.     }
  241.     else if ($numero >= 70 && $numero <= 79)
  242.     {
  243.             $num_letra = "setenta ";
  244.        
  245.         if ($numero > 70)
  246.             $num_letra = $num_letra."y ".unidad($numero - 70);
  247.     }
  248.     else if ($numero >= 60 && $numero <= 69)
  249.     {
  250.         $num_letra = "sesenta ";
  251.        
  252.         if ($numero > 60)
  253.             $num_letra = $num_letra."y ".unidad($numero - 60);
  254.     }
  255.     else if ($numero >= 50 && $numero <= 59)
  256.     {
  257.         $num_letra = "cincuenta ";
  258.        
  259.         if ($numero > 50)
  260.             $num_letra = $num_letra."y ".unidad($numero - 50);
  261.     }
  262.     else if ($numero >= 40 && $numero <= 49)
  263.     {
  264.         $num_letra = "cuarenta ";
  265.        
  266.         if ($numero > 40)
  267.             $num_letra = $num_letra."y ".unidad($numero - 40);
  268.     }
  269.     else if ($numero >= 30 && $numero <= 39)
  270.     {
  271.         $num_letra = "treinta ";
  272.        
  273.         if ($numero > 30)
  274.             $num_letra = $num_letra."y ".unidad($numero - 30);
ciertos numeros como los q terminan en ",56" no me funcionan...