Ist Der Mathematik.Boden handeln, wie Mathematik.Runde in ActionScript 3?

Hier ist das problem:

var p:int = 0;
var n:Number = 0;
n = 32.999999999999999;
p = Math.floor(n);
trace(p); //returns 33 
n = 32.11111111111111;
p = Math.floor(n);
trace(p); //returns 32

Ich würde erwarten, dass diese beiden Rückkehr 32. Ich habe gesucht, und es scheint, dies ist eine nicht gemeldete Fehler in AS3. Oder ... mache ich etwas falsch?

  • Haben Sie versucht, es mit nur 32.9? Kann es sein, dass Sie versuchen, zu genau zu sein und als solche, die es werden könnten, zu sagen, dass 32.999999999999999 == 33 (dh. da .9 wiederholen == 1) Haben Sie versuchen, nur die Ablaufverfolgung n?
  • javascript liefert das gleiche Ergebnis, führt mich zu glauben, dass es der beabsichtigten Wirkung, obwohl es nicht sinnvoll ist, mit der definition, was Boden machen soll... komisch?
  • javascript-version: jsfiddle.net/jpsJ8
  • ja, wie es scheint, ist ein bekanntes Problem mit as3 as2 vs sowie - in diesem KB-Artikel auf die Sie verweisen, nicht mehr gefunden, aber anscheinend beschreibt die prob - kirupa.com/forum/showthread.php?t=247416
  • Danke Euch allen -- ich kann nicht machen, n 32.9, denn es kommt von einer audio-Datei, und die Möglichkeit, die ActionScript-Code wird die position in einer Audiodatei. Mist! Mein real n ist oft so: 13202.990233456
InformationsquelleAutor macloo | 2011-03-07
Schreibe einen Kommentar