Ver Mensaje Individual
  #9 (permalink)  
Antiguo 30/04/2010, 13:19
maxwellxp
 
Fecha de Ingreso: abril-2010
Mensajes: 143
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: necesito funcion que convierta numeros a letra

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