Ver Mensaje Individual
  #3 (permalink)  
Antiguo 13/05/2009, 09:52
climax2006
 
Fecha de Ingreso: abril-2006
Mensajes: 240
Antigüedad: 18 años, 1 mes
Puntos: 1
Respuesta: error variable global al obtener el numero mayor

Cita:
Iniciado por zerokilled Ver Mensaje
el problema es que la segunda vez se esta comparando dos string en lugar de al menos uno de ellos integer. o sea, javascript utiliza un algoritmo diferente (operator overload o coercion) segun el tipo de valor de cada argumento. en la primera ocasion se compara un numero y un string. en este caso el string se converte a numero y luego se realiza la comparacion. cuando la evaluacion resulta true, la variable global contiene el string.

sin embargo, para la segunda ocacion, y subsecuentes, se comparan dos string donde javascript utiliza el primer character de cada operando y los compara segun el charCode. de modo que en las cadenas '90' y '180', el 9 es mayor que el 1.

para solucionarlo, debes convertir al menos un operando a tipo integer antes de hacer la comparacion. o la version mucho mas corta, utiliza la funcion Math.max.

Código javascript:
Ver original
  1. var maximoInsumoDespachoPaciente = 0;
  2. function agregarInsumoDespachoPaciente(){
  3. maximoInsumoDespachoPaciente = Math.max(document.getElementById('txt_str_total_recetado').value,
  4. maximoInsumoDespachoPaciente);
  5. }

en esta version no tienes que preocuparte por el tipo de valor, pues Math.max convierte cada argumento a tipo numerico y devuelve como integer el argumento con valor mas alto.
si exacto, ahora funko..gracias