| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| FBx Registriert seit: May 2003
Beiträge: 968
| zahlen vergleichen: 0.42 >= 0.42 = false
hi, habe eine einfache berechnung, die auch soweit in der test.fla wunderbar funktioniert. ActionScript:
ActionScript:
wäre jetzt zumindest meine einzige erklärung. habe es nun so gelöst. ActionScript:
gruß xlive |
| | |
| | #2 (permalink) |
| Freizeitflasher Registriert seit: Jun 2004 Ort: Niederösterreich
Beiträge: 615
|
du kannst auch den Wert aus der XML (und alle anderen werte) in Numbers konvertieren. vl hilft das was?
__________________ Some Flash Worx |
| | |
| | #3 (permalink) |
| FBx Registriert seit: May 2003
Beiträge: 968
|
schau, dass mach ich doch: ActionScript:
|
| | |
| | #4 (permalink) |
| Freizeitflasher Registriert seit: Jun 2004 Ort: Niederösterreich
Beiträge: 615
|
extrem krass: ActionScript:
ActionScript:
__________________ Some Flash Worx Geändert von Alphanimal (12-08-2005 um 15:22 Uhr) |
| | |
| | #5 (permalink) |
| FBx Registriert seit: May 2003
Beiträge: 968
|
super.danke. es liegt wirklich daran, dass der interpreter die unterschiedlichen datentypen (strings, number, booleschen werte) in unterschiedlicher reihenfolge der nullen und einsen kodiert. und wenn dann irgendwo an der 15 stelle anstatt einer 0 eine 1 steht, dann ist die ausgabe = false; ActionScript:
gruß xlive |
| | |
| | #6 (permalink) |
| ................ Registriert seit: Jun 2004
Beiträge: 15.890
|
Hmmm... Ist ja mal ganz interessant, aber was soll der Mist??? ActionScript:
__________________ ternärer Konditionaloperator +++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++ |
| | |
| | #7 (permalink) |
| FBx Registriert seit: May 2003
Beiträge: 968
|
ja das ist mal ne gute frage stell dir vor du hast eine anwendung, die list einen wert (columnF) aus einer xml. nun berechnest du eine zahl (columnB4). wenn columnB>=columnF ist, dann soll eine ausgabe erscheinen. nehmen wir an, beide werte betragen 0.42. also dann hast du ActionScript:
um jetzt allen, ja abers vorzubeugen, hier mal das "alte" script. ActionScript:
|
| | |
| | #8 (permalink) |
| helpQLODhelp Registriert seit: Feb 2002 Ort: Köln
Beiträge: 8.505
|
Deswegen soll man Gleitkommazahlen auch nie direkt vergleichen, sondern nur den Unterschied zwischen zwei Zahlen messen. ActionScript:
Das sollte true ergeben, ist aber ungetestet. Das Problem ist übrigens nicht flashspezifisch, sondern hat mit der begrenzten Genauigkeit von Gleikommazahlen zu tun. mfg. r
__________________ Ralf Bokelberg™ - Flex & Flash Consulting Geändert von bokel (12-08-2005 um 20:05 Uhr) |
| | |
| | #9 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.324
|
"..Das Problem ist übrigens nicht flashspezifisch, sondern hat mit der begrenzten Genauigkeit von Gleikommazahlen zu tun.." sorry, wenn ich wiederspreche, aber das ist es hier nicht. das dezimalzahlen nicht immer komplett als binäre zahlen wiedergegeben werden können, das ist bekannt. aber der fehler müsste immer der SELBE fehler sein. das ist hier nicht der fall. zahlen im script werden anders dargestellt (müssen aber intern auch umgerechnet werden, schliesslich ist der script auch nur text), wie die selbe zahl, bei der eine be-/umrechnung gegeben ist. der 'fehler' liegt offensichtlich darin: das im code angegebene zahlen gerundet werden, was bei berechnungen zur laufzeit nicht der fall ist. a = 0.42; trace(0.42-a); // besonders hierbei könnte man doch einen rundungsfehler erwarten trace(.42*5944.56733/5944.56733-a); // trace(Number("0.42")-a); trace(parseFloat("0.42")-a); trace(("0.42").valueOf()-a); trace((4/10+2/100)-a); trace((4*Math.pow(10, -1)+2*Math.pow(10, -2))-a);
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #10 (permalink) |
| helpQLODhelp Registriert seit: Feb 2002 Ort: Köln
Beiträge: 8.505
|
Das stimmt auch wieder hgseib. Es sieht so aus, als ob der Compiler beim Parsen von Zahlen andere Ergebnisse liefert, als der Flashplayer. Es wäre wirklich schöner, wenn beide gleich arbeiten würden. mfg. r
__________________ Ralf Bokelberg™ - Flex & Flash Consulting |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |