Hola,
 
Pude conseguir un codigo que convierte numeros a letras, pero cuando pongo 1000000, me da una respuesta "Un Millon Mil Cero," en ves de solo "Un Millon."
 
Me pueden ayudar?
 
<html>
<script>
var o=new Array("Diez", "Once", "Doce", "Trece", "Catorce", "Quince", "Dieciséis", "Diecisiete", "Dieciocho", "Diecinueve", "Veinte", "Veintiuno", "veintidós", "Veintitrés", "Veinticuatro", "Veinticinco", "Veintiséis", "Veintisiete", "Veintiocho", "Veintinueve");
var u=new Array("cero", "uno", "Dos", "Tres", "Cuatro", "Cinco", "Seis", "Siete", "Ocho", "Nueve");
var d=new Array("", "", "", "Treinta", "Cuarenta", "Cincuenta", "Sesenta", "Setenta", "Ochenta", "Noventa");
var c=new Array("", "ciento", "Doscientos", "Trescientos", "Cuatrocientos", "Quinientos", "Seiscientos", "Setecientos", "Ochocientos", "Novecientos");
 
function toWords(n)
{
  var n=parseFloat(n.replace(",","")).toFixed(2); // Limited to 2 decimals
  var p=n.toString().substring(n.toString().indexOf(".")  +1); // Decimals
  var m=n.toString().substring(0,n.toString().indexOf(".  ")); // Number without decimals
  var m=parseFloat(m).toString().split("").reverse();
  var t="";
 
  // Every 3 digits are analayzed
  for (var i=0; i<m.length; i+=3)
  {
    var x=t;
    // A 2 digit number is made
    var b=m[i+1]!=undefined?parseFloat(m[i+1].toString()+m[i].toString()):parseFloat(m[i].toString());
    // We analyze the 3rd digit
    t=m[i+2]!=undefined?(c[m[i+2]]+" "):"";
    t+=b<10?u[b]:(b<30?o[b-10]:(d[m[i+1]]+(m[i]=='0'?"":(" y "+u[m[i]]))));
    t=t=="ciento cero"?"Cien":t;
    if (2<i&&i<6)
      t=t=="uno"?"Mil ":(t.replace("uno","un")+" mil ");
    if (5<i&&i<9)
      t=t=="uno"?"un millón ":(t.replace("uno","un")+" millones ");
    t+=x;
    //t=i<3?t:(i<6?((t=="uno"?"mil ":(t+" mil "))+x):((t=="uno"?"un millón ":(t+" millones "))+x));
  }
 
  //t+=" con "+p+"/100";
  t=t.replace("  "," ");
  t=t.replace(" cero","");
  t=t.replace(" mil cero"," ");
  return t;
}
 
</script>
<script type="text/javascript">
         function mostrarNumero(elem){
            var texto = toWords(elem.value);
            document.getElementById('mostrarAca').innerHTML = texto;
         }
    </script>
<body>
<input type="text" onkeyup="mostrarNumero(this)" />
    <p id="mostrarAca"></p>
</body>
</html> 
   
 



