Foros del Web » Creando para Internet » Flash y Actionscript »

problema con resta!

Estas en el tema de problema con resta! en el foro de Flash y Actionscript en Foros del Web. Hola amigos , tengo el siguiente problema, estoy haciendo un simulador en el cual cuando agrego agua tengo que restar lo que estoy agregando al ...
  #1 (permalink)  
Antiguo 01/09/2007, 15:36
 
Fecha de Ingreso: junio-2007
Mensajes: 49
Antigüedad: 10 años, 5 meses
Puntos: 0
problema con resta!

Hola amigos , tengo el siguiente problema, estoy haciendo un simulador en el cual cuando agrego agua tengo que restar lo que estoy agregando al total , pero el problema esta en que cuando el totald del agua me vale 9 , le tengo que restar el 60% lo cual seria 5.4, lo hago y imprimo el valor totalAgua = totalAgua - loQueEcho , el totalAgua se pinta como 3.6 (lo que deberia ser) pero al restarle 3.6 la siguiente ves para terminar de echar todo , me da como resultador 4.1233223412xe-16 una locura pq esto es 0 pero para objetos de comparar luego me da error y me dana todo. Si alguno le ha pasado esto y sabe como solucionar , se lo agradezco , gracias!
  #2 (permalink)  
Antiguo 02/09/2007, 06:26
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: problema con resta!

No me ha pasado nunca, pero si cuelgas el código con el que efectúas la operación, seguro que se te puede ayudar.

Saludos!
  #3 (permalink)  
Antiguo 02/09/2007, 09:40
 
Fecha de Ingreso: junio-2007
Mensajes: 49
Antigüedad: 10 años, 5 meses
Puntos: 0
Re: problema con resta!

on(press){


if this.cuanto_txt.text > _root.simula.agua30{
import mx.controls.Alert;
Alert.show("la cantidad a agregar no debe ser mayor a la disponible", "Alerta", Alert.OK , null, myClickHandler, "", Alert.OK);
}
else{

_root.simula.agua30 = _root.simula.agua30 - this.cuanto_txt.text;
_root.agua_txt.text = _root.simula.agua30;


_root.elementos[_root.simula.i][1] = this.cuanto_txt.text;

_root.manguera3._x = _root.simula.dondeX;
_root.manguera3._y = _root.simula.dondeY;
_root.simula.i = Number(_root.simula.i) + Number(1) ;
this.removeMovieClip();
}
}


Este es el codigo, existe un objeto "simula" que tiene todas las variables
var agua30

estuve probando cuando coloco la definicion de la variable var agua30:Number ocurre que cuando le resto 3.6 a 3.6 no pasa del primer if y me bota el mensaje de alerta. Luego probe colocando la variable asi var agua30; sin el Number y si pasa la condicion, hace la resta pero me guarda como numero 4.1241241e-16.

Esto es un movie clip , que pide la cantidad de agua que quiero quitar.
  #4 (permalink)  
Antiguo 03/09/2007, 02:14
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: problema con resta!

Sólo se me ocurre que declares también la variable como Number cuando la recojas del campo de texto.

Number(this.cuanto_txt.text)
  #5 (permalink)  
Antiguo 03/09/2007, 06:35
 
Fecha de Ingreso: mayo-2006
Mensajes: 77
Antigüedad: 11 años, 6 meses
Puntos: 1
Re: problema con resta!

Hola

Es posible que estés utilizando alguna división en tu código que te de algún valor decimal cercano al cero.

Prueba tratar los valores con 'Math.round()' para que no tengan decimales.

Si necesitas precision decimal, (pero no tanta) trata igualmente los valores en código como enteros x10 o x100 del valor real y a la hora de mostrarlos los divides.

Un saludo
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:08.