Foros del Web » Programando para Internet » Javascript »

Problema con Math.Floor

Estas en el tema de Problema con Math.Floor en el foro de Javascript en Foros del Web. Hola, estoy haciendo un script, recoge unos datos de un formulario y los suma, tengo puesto esto: var operacion1 = Math.floor((dato11 * datob11) + (dato12 ...
  #1 (permalink)  
Antiguo 26/09/2008, 13:29
 
Fecha de Ingreso: abril-2007
Mensajes: 213
Antigüedad: 17 años
Puntos: 0
Problema con Math.Floor

Hola, estoy haciendo un script, recoge unos datos de un formulario y los suma, tengo puesto esto:

var operacion1 = Math.floor((dato11 * datob11) + (dato12 * datob21) + (dato13 * datob31) + (dato14 * datob41));

y funciona percectamente, pero ahora tengo esto:

var operacion2 = Math.floor(dato12 + datob12); y no se porque en vez de sumar me trata los numeros como letras, si dato12 es 5 y datob12 es 10 al poner 5 + 10 en lugar de poner 15 me pone 510, ¿Qué puedo hacer?

Gracias

P.D.: Se arregla poniendo: Math.floor((dato12 * 1) + (datob12 * 1)) pero quiero saber si hay otro modo.
  #2 (permalink)  
Antiguo 26/09/2008, 13:31
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
De acuerdo Respuesta: Problema con Math.Floor

Prueba usando parseInt para convertir la variable dato12 y datob12.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 26/09/2008, 13:33
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con Math.Floor

Como "+" es un operador que hace las dos cosas (sumar y concatenar) dependiendo de los argumentos que le pases, hará la suma si forzás a que los argumentos sean números:

Código javascript:
Ver original
  1. Math.floor( parseInt(dato12) + parseInt(datob12) )

También existe parseFloat() para cuando necesitás que los valores tengan decimales.


Saludos.
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.