Foros del Web » Programando para Internet » Javascript »

Error de sumas javascript

Estas en el tema de Error de sumas javascript en el foro de Javascript en Foros del Web. Hola, buenas tardes, Tengo una función para calcular el costo de envío por mensajería, basado en el peso y en base a una tabla, pero ...
  #1 (permalink)  
Antiguo 25/07/2012, 15:32
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años, 7 meses
Puntos: 27
Error de sumas javascript

Hola, buenas tardes,

Tengo una función para calcular el costo de envío por mensajería, basado en el peso y en base a una tabla, pero no se porque me arroja los resultados incorrectos...

Tengo este código:

Código:
	$(document).ready( function () {
	
		$("#calcpf").click(function() {
			
			var peso = $("#pesof").val();
			var iva = "";
			var total = "";
			
			if (peso <= 250 ) { 				
				total = peso * 5;	
			} else if (peso > 250 || peso <= 500) { 
				total = peso * 10;
			} else if (peso >= 501 || peso <= 750) {
				total = peso * 15;
			} else if (peso >= 750 || peso <= 1000 ) {
				total = peso * 20;
			}
			
			iva = (total * 1.16) - total;
			
			$("#iva-f").html('<p>IVA: <input type="text" name="bmi" size="8" value="' + iva +'" /></p>');
			$("#total-f").html('<p>Total a pagar: <input type="text" name="bmi" size="8" value="' + total +'" /></p>');
			
		});
	
	});
Cuando calculo alguna cantidad menor o igual a 250 me da el valor correcto, asi mismo cuando lo hago por un valor mayor a 250 y menor o igual a 500. Pero cuando hago el cálculo por un valor arriba de 500, me multiplica ese valor por 10, cuando debería ser por 15. Por ejemplo, pongo como valor 501 y me sale 5010, cuando debería salir 7,515... no entiendo el porque... alguna idea?

De antemano gracias!! Saludos!!
  #2 (permalink)  
Antiguo 25/07/2012, 15:44
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años, 7 meses
Puntos: 27
Respuesta: Error de sumas javascript

Perdón, no son sumas en el título del tema, pero ya no vi donde cambiarlo xD

Saludos!
  #3 (permalink)  
Antiguo 25/07/2012, 15:55
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 6 meses
Puntos: 220
Respuesta: Error de sumas javascript

es que esta mal tu operador en vez de usar el OR || debes usar el AND &&
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #4 (permalink)  
Antiguo 25/07/2012, 16:10
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años, 7 meses
Puntos: 27
Respuesta: Error de sumas javascript

Sale el mismo resultado.

Aunque debería ser Or, porque And indica que debe ser uno y otro a la vez, y con Or le especificamos que es uno u otro.

Saludos!
  #5 (permalink)  
Antiguo 25/07/2012, 16:13
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años, 7 meses
Puntos: 27
Respuesta: Error de sumas javascript

No me hagas caso, ya funcionó como dices :P

Ignora mi respuesta anterior T__T
  #6 (permalink)  
Antiguo 25/07/2012, 16:19
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 6 meses
Puntos: 220
Respuesta: Error de sumas javascript

jajaja OK solo aclarar que cuando validas con rango de numeros siempre se debe usar el operador de AND que es el correcto el OR es para validar o bien si cumple el otro o no cuando tu hacias tu codigo estaba preguntando esto

peso > 250 || peso <= 500

Si peso es mayor a 250 O peso es menor o igual a 500

entonces cuando tu ponías por ejemplo 510, se cumplía la primera parte del condicional que 510 si es mayor que 250 pero no cumplia la otra ya que 510 es menor o igual que 500 pero como es el operador OR solo bastaba que cumpliera solo uno de estas para que entrara dentro de esta y lo validara

Saludos
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones

Etiquetas: html, input, sumas
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 06:15.