
13/05/2009, 09:52
|
| | Fecha de Ingreso: abril-2006
Mensajes: 240
Antigüedad: 18 años, 11 meses Puntos: 1 | |
Respuesta: error variable global al obtener el numero mayor Cita:
Iniciado por zerokilled 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 originalvar maximoInsumoDespachoPaciente = 0; function agregarInsumoDespachoPaciente(){ maximoInsumoDespachoPaciente = Math.max(document.getElementById('txt_str_total_recetado').value, maximoInsumoDespachoPaciente); }
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 |