Foros del Web » Programando para Internet » Javascript »

Problema al restar 1-campo.value

Estas en el tema de Problema al restar 1-campo.value en el foro de Javascript en Foros del Web. Hola, Estoy realizando una función sencilla en la que simplemente recibo un campo con decimales y escribo en otro el resultado de restarle a 1 ...
  #1 (permalink)  
Antiguo 05/05/2011, 10:11
Avatar de javimartinez  
Fecha de Ingreso: marzo-2003
Ubicación: Leganés (Madrid)
Mensajes: 284
Antigüedad: 21 años, 8 meses
Puntos: 1
Pregunta Problema al restar 1-campo.value

Hola,

Estoy realizando una función sencilla en la que simplemente recibo un campo con decimales y escribo en otro el resultado de restarle a 1 ese campo. Para ello hago la siguiente operación:

Código:
//Al principio no tenía el parseFloat y pasaba lo mismo
pNegada = 1-parseFloat(campoOrigen.value); 
campoDestino.value=pNegada;
Esto funciona correctamente si en el campo origen pongo valores entre 0 y 0.65, sin embargo, si pongo valores entre 0.66 y 0.99 la resta da un resultado erróneo. Por ej, si pongo 0.71 me da que el resultado es 0.29000000000000004 . Es decir, me mete un pequeño decimal al final.

¿Sabéis a que puede ser debido? ¿Alguna idea con la que seguir buscando una solución? (no me vale redondear cortar en X dígitos, ya que necesito siempre toda la precisión posible)

Gracias y un saludo
__________________
Javi Martínez

Web: Acertijolandia Blog: A Entretenerse
  #2 (permalink)  
Antiguo 05/05/2011, 18:32
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años, 7 meses
Puntos: 343
Respuesta: Problema al restar 1-campo.value

El resultado no es necesariamente errone, si te interesa leer en profundidad:

[URL="http://floating-point-gui.de/"]What Every Programmer Should Know About Floating-Point Arithmetic[/URL].
__________________
blog | @aijoona
  #3 (permalink)  
Antiguo 05/05/2011, 22:19
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 19 años
Puntos: 87
Respuesta: Problema al restar 1-campo.value

Cita:
Iniciado por Aijoona Ver Mensaje
El resultado no es necesariamente errone, si te interesa leer en profundidad:

[URL="http://floating-point-gui.de/"]What Every Programmer Should Know About Floating-Point Arithmetic[/URL].
Exageradamente interesante el articulo; esto tambian me paso en Action Script 3 con los "floating point" pero afortunadamente la diferencia era demasiado minúscula para que importara en mi proyecto y redondearlos estaba bien.

Etiquetas: restar
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 05:56.