Foros del Web » Programando para Internet » Javascript »

NaN.000

Estas en el tema de NaN.000 en el foro de Javascript en Foros del Web. en una pagina en donde se calcula la tasa de cambio, me aparece NaN.000. tengo varios texbox, y en donde se pueden ingresar solo numeros, ...
  #1 (permalink)  
Antiguo 09/04/2006, 21:54
 
Fecha de Ingreso: septiembre-2004
Mensajes: 51
Antigüedad: 19 años, 7 meses
Puntos: 0
NaN.000

en una pagina en donde se calcula la tasa de cambio, me aparece NaN.000.

tengo varios texbox, y en donde se pueden ingresar solo numeros, cuando ingreso un numero en un texbox, los demas cambian de valor. No hay problemas con el calculo, pero cuando ingreso un numero grande me aparece NaN.000, en todos los texbox que se hacen calculos.
  #2 (permalink)  
Antiguo 10/04/2006, 01:38
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
NaN quiere decir "Not A Number" y suele aparecer cuando se intenta operar con texto. Por ejemplo, si ponemos a="pepe"/2 al hacer un alert(a) aparecerá el consabido NaN.

En tu caso puede ser (que no lo sé porque no pones el código) que al multiplicar o sumar números grandes se salga de la cantidad máxima de dígitos que puede calcular con JS y aparezca el típico:6.990657697890977e+23 (el primer número multiplicado por 10 elevado a 23 en este caso) y al intentar operar con él no sepa como usarlo y de ese error.

Mi recomendación sería que pusieras el código y si no puede ser, si tienes que multiplicar y luego dividir te recomiendo que primero dividas y luego multipliques para que no ocurra eso.

También puedes convertir el contenido de la caja en número con:

a="123123";
b=parseFloat(a);
alert(b+1);

Espero que te sirva la ayuda!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 11/04/2006, 03:48
 
Fecha de Ingreso: septiembre-2004
Mensajes: 51
Antigüedad: 19 años, 7 meses
Puntos: 0
El error se produce cuando ingreso un numero de 4 digitos o mas, por ejemplo con 999 ok, con 1000 o mas no ok.

La llamada:


onBlur="MM_validateForm('variable','','RinRange0:9 9999999.999')



Codigo de la funcion es:

function MM_validateForm() { //v4.0
var i,p,q,nm,test,num,min,max,errors='',args=MM_valida teForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
} else if (test!='R') {

if (isNaN(val)) {
errors+='- El valor tiene que ser un numero.\n';
}
else
{

if (parseFloat(val)<0)
{
errors+='- Este valor tiene que ser mayor o igual que cero.\n';
}
else
{
MM_changeProp(nm,'','value',roundOff(val, 3),'INPUT/TEXT');
}

}

if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if ((parseFloat(val)<parseFloat(min)) || (parseFloat(val)>parseFloat(max))) errors+='- El valor ingresado debe estar entre '+min+' y '+max+'.\n';
// if (val<min || val>max) errors+='- El valor ingresado debe estar entre '+min+' y '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- Debe ingresar un valor.\n'; }
}
if (errors){
alert('Los siguientes error(es) se han detectado:\n'+errors);
MM_changeProp(nm,'','value','0.000','INPUT/TEXT');
var formname=Get_Form_Name(nm);
document.forms[formname][nm].select();
document.forms[formname][nm].focus();
}
document.MM_returnValue = (errors == '');
}

Te agradezco demasiado la ayuda
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 21:18.