Foros del Web » Programando para Internet » Javascript »

Como remover "mil cero" del Javascript output?

Estas en el tema de Como remover "mil cero" del Javascript output? en el foro de Javascript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 22/10/2015, 08:23
 
Fecha de Ingreso: octubre-2015
Mensajes: 3
Antigüedad: 8 años, 6 meses
Puntos: 0
Como remover "mil cero" del Javascript output?

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>
  #2 (permalink)  
Antiguo 23/10/2015, 00:54
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Como remover "mil cero" del Javascript output?

Saludo
Pues teniendo en cuenta el código que hace el replace al final,
podría ser de este modo:
Código Javascript:
Ver original
  1. t=t.replace("  mil  cero"," ");
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:45.