Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-11-2004, 11:22   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2002
Beiträge: 81
Math.round(VAR*100)/100; <- Rundet blödsin!?

hmmm - also es gibt ja schon ein paar threads über das Problem von Flieskommaproblemen, aber ich dachte der round sollte eigentlich richtig arbeiten, aber habe gerade mal einen kleinen test gemacht, und habe mir eine Zahl *.125 runden lassen und bekomme bei trace einen solchen blödsinn!!??

Zitat:
0.13
1.13
12.13
123.12
1234.13
12345.13
123456.13
1234567.13
12345678.13
123456789.12
1234567890.13
12345678901.13
also nur wenn ich 3 bzw. 9 ziffern vor dem komma habe rundet das ding falsch, und auch nur bei 3 ziffern hinter dem Komma!!

Hat jemand eine Idee woran das liegen könnte??

grezz Netzy

PS:

das ganze ist noch witziger, wenn man nämlich nicht mit einer 1 startet, rundet er richtig!!

Zitat:
123.12
223.13
123456789.12
223456789.13

Geändert von Netzdiver (02-11-2004 um 11:25 Uhr)
Netzdiver ist offline   Mit Zitat antworten
Alt 02-11-2004, 11:34   #2 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Math.round kann auch nur das runden, was das Zahlenformat an Genauigkeit hergibt. Wenn du absolut exakte Berechnungen brauchst, musst du ganze Zahlen benutzen.

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 02-11-2004, 12:01   #3 (permalink)
Neuer Benutzer
 
Benutzerbild von webxvideo
 
Registriert seit: Nov 2003
Ort: berlin
Beiträge: 883
Ist wohl eindeutig ein Bug!
Bei MX 2004 wird's aber korrekt gerechnet.
webxvideo ist offline   Mit Zitat antworten
Alt 02-11-2004, 12:40   #4 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
@webxvideo: Netdiver scheint auch mx2004 zu haben....
...aber auch bei mx kann ich diesen 'Fehler' nicht nachvollziehen (der doch gar kein flash-bug sein kann...), hier mal mein Testscript:
ActionScript:
  1. runden=function(zahl){
  2.     trace(Math.round(zahl*100)/100);
  3. }
  4. for(i=1;i<10;i++){
  5.     j=j*10+i;
  6.     runden(j+0.125)
  7. }
Ausgabe:
Zitat:
1.13
12.13
123.13
1234.13
12345.13
123456.13
1234567.13
12345678.13
123456789.13
...also scheint es schon eher der bug vorm PC zu sein!!!

Gruß

Alois
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-
Alois ist offline   Mit Zitat antworten
Alt 02-11-2004, 12:56   #5 (permalink)
Neuer Benutzer
 
Benutzerbild von webxvideo
 
Registriert seit: Nov 2003
Ort: berlin
Beiträge: 883
@Alois
Also ich habe auch einen PC und den Rundungsfehler hab ich nicht.
Ich habs auch noch mal mit MX probiert - kein Fehler.

Ich bin davon ausgegangen, daß die Ergebnisse von Netzdiver stimmen, hab's nicht probiert und darum bin ich von einem Bug ausgegangen.

@Netzdiver
Poste doch mal das Script, welches den Fehler verursacht.
webxvideo ist offline   Mit Zitat antworten
Alt 02-11-2004, 13:21   #6 (permalink)
Neuer User
 
Registriert seit: Aug 2002
Beiträge: 81
hoi Alois,

hast du dein testskript unter dem F-Player 6 oder 7 laufen lassen???

Unter 6 bekomme ich auch das selbe ergeblis, aber unter 7 bekomme ich sogar nur

Zitat:
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
Ich hoffe nicht das der sch... mit dem Update auf den neuen Flashplayer 7 von MM zu tun hat?!

@ web

ich hatte es nur über ein einfaches eingabefeldundund einem Button mit on function gemacht, und die werte einfach per hand eingegeben

Geändert von Netzdiver (02-11-2004 um 13:22 Uhr)
Netzdiver ist offline   Mit Zitat antworten
Alt 02-11-2004, 13:22   #7 (permalink)
a.k.a maddin79
 
Benutzerbild von madflanderz
 
Registriert seit: Jul 2003
Ort: berlin f-hain
Beiträge: 1.693
das hat damit nix zu tun, du mußt noch ein j=0 vor die schleife schreiben um die variable zu initialisieren.

trozdem verstehe ich nicht dein/euer problem, was soll denn bei z.b. 2.125 herauskommen??

2.125 * 100 =
212.5

round(212.5) =
213

213 / 100 =


2.13

ist doch richtig oder wie jetzt??? oder bin ich schon wieder zu verpeilt?
__________________
www.madflanderz.de

ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°` _ addicted to bass _ `°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø

Geändert von maddin79 (02-11-2004 um 13:25 Uhr)
madflanderz ist offline   Mit Zitat antworten
Alt 02-11-2004, 13:24   #8 (permalink)
Neuer User
 
Registriert seit: Aug 2002
Beiträge: 81
hmpf!!!

jo das wars, nur jetzt dann noch mal testen warum er so einen quatsch oben gerechnet hat
Netzdiver ist offline   Mit Zitat antworten
Alt 02-11-2004, 13:26   #9 (permalink)
a.k.a maddin79
 
Benutzerbild von madflanderz
 
Registriert seit: Jul 2003
Ort: berlin f-hain
Beiträge: 1.693
achso, du meinst die

*.12 oder???
__________________
www.madflanderz.de

ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°` _ addicted to bass _ `°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø
madflanderz ist offline   Mit Zitat antworten
Alt 02-11-2004, 13:30   #10 (permalink)
Neuer User
 
Registriert seit: Aug 2002
Beiträge: 81
also das script von alois futzt, aber wenn man es über ein on (release) berechnen läst, und die Zahlen von Hand angibt kommen die Zahlen von oben raus

Schaut mal ob es evtl. wirklich ein PC bug bei mir ist
Angehängte Dateien
Dateityp: zip round.zip (4,3 KB, 5x aufgerufen)
Netzdiver ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 19:50 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele