Warum funktioniert der Vergleich nicht?

Mammuth

Mitglied
Hallo zusammen,

warum wird die Bedingung nicht erfüllt, wenn root["bild1"]._y = 215.95 ist?


Code:
var checkPos:Number = 215.95;
	if (_root["bild1"]._y == checkPos)
	{
		trace("Jo");
	}
 
Hi,

scheint mir eine Art Rundungsfehler zu sein. Folgendes:
Code:
var checkPos:Number = 215.95;

b._x =  215.95; // "b" ist ein MovieClip

trace(b._x - checkPos);
gibt dies hier aus:
Code:
2.8421709430404e-14

Wenn Dir Ganzzahlen genügen, arbeite mit Rundungen:
Code:
var checkPos:Number = 215.95;

b._x =  215.95;

trace(Math.round(b._x) == Math.round(checkPos));

Gruß
.
 
Na gut, ich versuche das mal, aber gut zu wissen, wie er die Zahlen eigentlich in der Variablen speichert. Das ganze sollte doch wahrscheinlich auch gehen, wenn ich bis auf 2 Stellen nach dem Komma runder, oder?
 
Das ganze sollte doch wahrscheinlich auch gehen, wenn ich bis auf 2 Stellen nach dem Komma runder, oder?
Stimmt.

Mir war das Problem bis dato auch neu - es tritt scheinbar nur auf, wenn es sich bei mindestens einem Vergleichspartner um die Koordinate eines Objekts auf der Bühne handelt.

Gruß
.
 
Zurück