Ver Mensaje Individual
  #5 (permalink)  
Antiguo 26/05/2014, 19:17
Tachikomaia
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Por qué este bucle no funciona como espero?

Código:
on (release) { 
   if (M2.Intensity>1) { 
      M2.Intensity = M2.Intensity-1; 
   } else { 
      M2.DoW = 1; 
      M2.Multip = 1; 
      do { 
         M2.Multip = M2.Multip*10; 
         if (Math.round(M2.Intensity*M2.Multip) >1) { 
            M2.Intensity = (Math.round(M2.Intensity*M2.Multip)-1)/M2.Multip; 
            M2.DoW = 0; 
         } 
      } while (M2.DoW == 1); 
   } 
}
Usar Math.round me ayudó con la precisión, pero en mi código borra números que no quiero borrar, tengo que arreglarlo -es OTRO problema, otro asunto-, pero además sólo funciona hasta 0.00001, después empieza a poner expresiones como 3.5e6, exactas quizá pero no son lo que quiero que aparezca en el cuadro de texto xD

a) Otros me han dicho eso ¿pero se puede en Flash 5 de Macromedia? Es lo que uso. Cuando defino variables no especifico tipo, no sé si ayudaría ni si se puede. Leeré los documentos en algún momento, quizá... -odio leer esas cosas >_< -

b) Y si tienen dos decimales sería 1.00? Y así sucesivamente? Espero no olvidar esto que dices, pero me resulta un tanto extraño y he podido sortear el problema, por ahora, usando Math.round.
Supongo que 0.1*100 puede dar 1.0000000000001. Lo cual sería > 1, ergo daría errores o resultados que no se quiere, cuando se pone como condición que sea > 1 o que no. Pero con Mah.round se borran las variaciones "insignificantes".

El problema actual es lograr que en el cuadro de texto aparezcan los números y no las expresiones tipo 3.5e6. Pensé que una tal "parse", una función, convertía o obligaba a convertir/mostrar esas expresiones en números, pero si puede no sé cómo, la he usado y me da los mismos problemas llegado el mismo punto.

Gracias. La verdad estoy hecho un lío, tengo que pensar algunas cosas.