Foros del Web » Programando para Internet » Javascript »

Ayuda con diferenciar suma y concatenación!

Estas en el tema de Ayuda con diferenciar suma y concatenación! en el foro de Javascript en Foros del Web. Hola a Todos: Tengo un problema con el siguiente código de javascript, necesito que me tome el valor que hay en el campo de texto ...
  #1 (permalink)  
Antiguo 22/09/2007, 18:23
 
Fecha de Ingreso: noviembre-2006
Mensajes: 49
Antigüedad: 17 años, 5 meses
Puntos: 0
Ayuda con diferenciar suma y concatenación!

Hola a Todos:

Tengo un problema con el siguiente código de javascript, necesito que me tome el valor que hay en el campo de texto de un formulario (elemento) y me le sume o reste el parámetro valor.

La resta funciona muy bien, pero con la suma LO CONCATENA! intente poniendole un parseInt pero nada :(

Help!

Código:
function calcular(elemento, valor)
{
	var valor_total = document.form1.total_a_pagar.value;
	if(document.forms['form1'].elements[elemento].checked)
	{
		valor_total+=parseInt(valor);
	}
	else
	{
		valor_total-=parseInt(valor);
	}
	document.form1.total_a_pagar.value=valor_total;
	tipo_plan();
}
  #2 (permalink)  
Antiguo 22/09/2007, 19:38
 
Fecha de Ingreso: agosto-2007
Ubicación: En el lugar menos pensado
Mensajes: 83
Antigüedad: 16 años, 8 meses
Puntos: 2
Re: Ayuda con diferenciar suma y concatenación!

Hola

Bueno, pues ya me funciona bien, sin embargo si me gustaria saber algo al respecto, por ej de caricatos o derkenuke que saben bastante de javascript y nos expliquen el porque se debe hacer asi

Código:
function calcular(elemento, valor)
{
    var valor_total = document.form1.total_a_pagar.value;
    if(document.forms['form1'].elements[elemento].checked)
    {
        valor_total=parseInt(valor_total)+parseInt(valor);
    }
    else
    {
        valor_total-=valor;
    }
    document.form1.total_a_pagar.value= valor_total;

}
Notese que en la suma le puse parseInt a ambos terminos, y en la resta quite el parseInt y sin embargo funciona bien, entonces???? bug de js????
  #3 (permalink)  
Antiguo 23/09/2007, 00:44
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Ayuda con diferenciar suma y concatenación!

Hola:

Ya que se me nombra... jeje

El primero código muestra:
Código PHP:
var valor_total document.form1.total_a_pagar.value
Por lo cual la varialbe valor_total es un String, luego da igual lo que le sumes o le concatenes (el operador es el mismo, +), seguirá siendo un string seguido de lo que sea.

Lo que tienes que hacer es que ese valor_total sea un Number, ya sea con el constructor Number(), con el parseInt() o con el parseFloat().

En el segundo post pone:
Código PHP:
valor_total=parseInt(valor_total)+parseInt(valor); 
Entonces parseInt(valor_total) es un número y se le puede sumar (+) otro número sin complicaciones.


Con la resta (-) no pasa porque no coincide con el operador de concatenación +. La resta es la resta, igual que la multiplicación es la multiplicación (*), sólo sirven para eso. + sirve tanto para concatenar Strings como para sumar Numbers.


Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
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 00:33.