Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-10-2006, 09:48   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Beiträge: 53
einfache addition:: mal geht's, mal nicht

Hallo,

für eine simple Summenberechnung habe ich eine Anweisung, die bewirken soll, dass der Betrag mit 2 Stellen hinter dem Punkt ausgegeben wird:

summe = ((a1*9.90)+(a2*9.90)+(a3*9.90)+(a4*9.90)+(a5*34.90 )+3.90);
if (((summe*100)%100) == 0) {
summe = summe+".0";
}
if (((summe*100)%10) == 0) {
summe = summe+"0";
}


Das funktioniert auch. Allerdings nur manchmal.
Bsp. wird 23.70 korrekt ausgegeben, 27.70 jedoch nur als 27.7
58.60 wieder korrekt. 38.80 als 38.8.

Ich verstehe die Ursachen nicht, die Flash MX zu der Unlogik veranlasst. Ist die Anweisung falsch?

danke. mfg
iomo ist offline   Mit Zitat antworten
Alt 11-10-2006, 10:12   #2 (permalink)
liebt Skorpionin
 
Benutzerbild von Skorpion
 
Registriert seit: Apr 2003
Beiträge: 1.258
Zitat:
Zitat von iomo Beitrag anzeigen
für eine simple Summenberechnung habe ich eine Anweisung, die bewirken soll, dass der Betrag mit 2 Stellen hinter dem Punkt ausgegeben wird.
Wo begrenzt du denn auf diese 2 Stellen nach dem Komma? Fehlt da nicht was wie:
ActionScript:
  1. summe = Math.floor(summe*100) / 100;

Zitat:
Das funktioniert auch. Allerdings nur manchmal.
Bsp. wird 23.70 korrekt ausgegeben, 27.70 jedoch nur als 27.7
58.60 wieder korrekt. 38.80 als 38.8.
Ist dein Ausgabetextfeld gross genug damit es die Summe immer korrekt ausgeben kann? (Ziffern sind nicht alle gleich breit.)
Skorpion ist offline   Mit Zitat antworten
Alt 11-10-2006, 17:57   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Beiträge: 53
Von dem Code verstehe ich leider nix. Das Textfeld ist allerdings gross genug. Es ist ja auch so, dass bestimmte 5-tellige Beträge korrekt angezeigt werden, wogegen bei 4-stelligen die letzte fehlt - also nur 3 ausgegeben werden.
Es ist wirklich zum verzeifeln :-(
iomo ist offline   Mit Zitat antworten
Alt 11-10-2006, 18:35   #4 (permalink)
liebt Skorpionin
 
Benutzerbild von Skorpion
 
Registriert seit: Apr 2003
Beiträge: 1.258
Tritt der Fehler auch dann auf, wenn du die Summe eingangs von Hand auf 27.20 setzt? So :
ActionScript:
  1. summe = 27.70;
  2. if (((summe*100)%100) == 0) {
  3. summe = summe+".0";
  4. }
  5. if (((summe*100)%10) == 0) {
  6. summe = summe+"0";
  7. }
  8. trace (summe);

So nebenbei gesagt: dein gleichzeitiges Verwenden der Variablen summe als Zahl wie auch als String erzeugt äusserst unsauberen und fehlerträchtigen Code.
Skorpion ist offline   Mit Zitat antworten
Alt 12-10-2006, 09:19   #5 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Beiträge: 53
Zitat:
Tritt der Fehler auch dann auf, wenn du die Summe eingangs von Hand auf 27.20 setzt?
Immer OK. Auch mit verschiedenen Werten.
Hat das damit zu tun, dass du in den code : trace (summe); eingefügt hast?

Zitat:
So nebenbei gesagt: dein gleichzeitiges Verwenden der Variablen summe als Zahl wie auch als String erzeugt äusserst unsauberen und fehlerträchtigen Code.
Gut zu wissen. Ich habe für den code bezahlt :-(

mfg
iomo ist offline   Mit Zitat antworten
Alt 12-10-2006, 09:37   #6 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Beiträge: 53
hier ist das Problem zu "bewundern":
http://mymandala.de/on-mandala101106.html
Klicke: bestellen > bestellen > wähle "1" Set > Versandkosten Deutschland
vergleiche mit Eingabe "2" Sets und staune :-)
iomo 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 07:13 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele