Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 8

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-03-2011, 15:41   #1 (permalink)
Neuer User
 
Benutzerbild von Herzenslicht
 
Registriert seit: Aug 2006
Ort: Hamburg
Beiträge: 736
Question mathematisches Problem - xml

Hi Leute, habe ein kleines, für mich derzeit unverständliches Problem.
habe eine xml-Datei aus der ich Daten auslese um diese zu verarbeiten - logisch oder ?

Die xml:
PHP-Code:
<?xml version="1.0" encoding="UTF-8"?>

<!-- ########################################################################### -->
<!-- ##     Hier stehen Mindest- und Maximalpreis, sowie der Produktname      ## -->
<!-- ##                                                                       ## -->
<!-- ##     Rpr= Regulärer Preis   Dpr= Derzeitiger Preis   Min= Mindestpreis ## -->
<!-- ##     Max= Maximaler Preis   produkt=  Produktname                      ## -->
<!-- ########################################################################### -->

<bierboerse>
  <tag Rpr="1.00"   Dpr="2.10"   Min="0.80"   Max="1.30"   produkt="Astra 0,33"/>
  <tag Rpr="2.10"   Dpr="2.00"   Min="1.80"   Max="2.30"   produkt="Holsten Edel 0,33"/>
  <tag Rpr="3.10"   Dpr="3.00"   Min="2.80"   Max="3.30"   produkt="Warsteiner 0,33"/>
  <tag Rpr="4.10"   Dpr="4.00"   Min="3.80"   Max="4.30"   produkt="Jever 0,33"/>
  <tag Rpr="5.10"   Dpr="5.00"   Min="4.80"   Max="5.30"   produkt="Warsteiner 0,4"/>
  <tag Rpr="6.10"   Dpr="6.00"   Min="5.80"   Max="6.30"   produkt="Duckstein 0,3"/>
  <tag Rpr="7.10"   Dpr="7.00"   Min="6.80"   Max="7.30"   produkt="Warsteiner 0,5"/>
  <tag Rpr="8.10"   Dpr="8.00"   Min="7.80"   Max="8.30"   produkt="Duckstein 0,5"/>
</bierboerse>
Nun lese ich die Daten aus und möchte die Werte in txt-Felder übertragen,
wobei ich den derzeitigen Preis mit dem regulären Preis vergleiche.

Die Differenz soll angezeigt werden.
Aber genau da gibt es Probleme.

PHP-Code:
_root.XMLdaten = new XML();

_root.XMLdaten.ignoreWhite=true;
_root.XMLdaten.load("bierboerse.xml");

_root.XMLdaten.onLoad = function(success) {//wenn die Datei geladen wird
_root.XMLdaten_bierboerse = [];
                        
    if (
success) { //wenn das laden der File erfolgreich war
                    
        
for (var i=0i<_root.XMLdaten.firstChild.childNodes.length+1i++) {
            
            
_root.XMLdaten_bierboerse[i] = {Rpr:_root.XMLdaten.firstChild.childNodes[i].attributes.Rpr,Dpr:_root.XMLdaten.firstChild.childNodes[i].attributes.Dpr,produkt:_root.XMLdaten.firstChild.childNodes[i].attributes.produkt,Min:_root.XMLdaten.firstChild.childNodes[i].attributes.Min,Max:_root.XMLdaten.firstChild.childNodes[i].attributes.Max};
            if(
i<_root.XMLdaten.firstChild.childNodes.length)
            {
            
trace("Rpr    Dpr");
            
trace(_root.XMLdaten_bierboerse[i].Rpr+"   "+_root.XMLdaten_bierboerse[i].Dpr);
            
trace("");
            }
          
_root["produkt"+i].text=_root.XMLdaten_bierboerse[i-1].produkt;
          
_root["minpr"+i].text=_root.XMLdaten_bierboerse[i-1].Min;
          
_root["maxpr"+i].text=_root.XMLdaten_bierboerse[i-1].Max;
          
_root["aktpr"+i].text=_root.XMLdaten_bierboerse[i-1].Dpr;
          if(
_root.XMLdaten_bierboerse[i-1].Rpr<_root.XMLdaten_bierboerse[i-1].Dpr){_root.Erg="+"+(_root.XMLdaten_bierboerse[i-1].Dpr _root.XMLdaten_bierboerse[i-1].Rpr)}
          if(
_root.XMLdaten_bierboerse[i-1].Rpr>_root.XMLdaten_bierboerse[i-1].Dpr){_root.Erg="-"+(_root.XMLdaten_bierboerse[i-1].Rpr _root.XMLdaten_bierboerse[i-1].Dpr)}
          if(
_root.XMLdaten_bierboerse[i-1].Rpr==_root.XMLdaten_bierboerse[i-1].Dpr){_root.Erg="0.00"};
          
          
_root["diffpr"+i].text_root.Erg+"0";
        
            
        } 
//for
        
    
//if (success)
    
else{    stop();
    }
//onLoad 
Anstatt 0.1 wird der Wert 0.0999 ausgegeben.
Die Frage die ich nun stelle lautet "Warum ?"

Anbei die Fla.
Angehängte Dateien
Dateityp: fla bbtest.fla (64,0 KB, 2x aufgerufen)
__________________
_________________
Liebe Grüße
Herzenslicht ist offline   Mit Zitat antworten
Alt 08-03-2011, 15:58   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Du machst da mit Strings rum...
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 08-03-2011, 16:02   #3 (permalink)
ING
whatever
 
Registriert seit: May 2008
Beiträge: 419
grundsätzlich solltest du erstmal alles, womit du rechnen willst, auch in Number() casten, sonst tip ich mal auf das "problem" was hier 4 seiten lang diskutiert wird.
ING ist offline   Mit Zitat antworten
Alt 08-03-2011, 16:07   #4 (permalink)
Neuer User
 
Benutzerbild von Herzenslicht
 
Registriert seit: Aug 2006
Ort: Hamburg
Beiträge: 736
Zitat:
Zitat von Der Frager Beitrag anzeigen
Du machst da mit Strings rum...
Hallöchen an "Der Frager".
Wie würdest Du es denn lösen ?
Die Daten aus der xml sind notwendig.
__________________
_________________
Liebe Grüße
Herzenslicht ist offline   Mit Zitat antworten
Alt 08-03-2011, 16:10   #5 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Rechnen jedenfalls mit "number" - aber das ist hier nicht das einzige Problem. Es gibt generell Fehler ohne Rundung (siehe Beispiel):
PHP-Code:
var "8.00"
var "7.90"
trace(a-b// -> 0.0999999999999996
//
trace(parseFloat(a)-parseFloat(b)) // -> 0.0999999999999996
//
trace(Math.round((parseFloat(a)-parseFloat(b))*100)/100// -> 0.1 
Aber zwei Stellen hinter dem Komma reichen ja eh...
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 08-03-2011, 16:31   #6 (permalink)
Neuer User
 
Benutzerbild von Herzenslicht
 
Registriert seit: Aug 2006
Ort: Hamburg
Beiträge: 736
Klappt - VIELEN DANK !!!
Werde mich mit dem Thema beschäftigen.
__________________
_________________
Liebe Grüße
Herzenslicht 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mathematisches Problem MausFan ActionScript 2 20 29-08-2007 21:58
mathematisches problem Sir-Rion ActionScript 3 3 12-12-2006 15:55
mathematisches problem im planetensystem lecter ActionScript 1 0 30-01-2006 15:19
flächenaufteilung (mathematisches problem) a_n Spielkonzepte und Spieleprogrammierung 7 03-03-2005 11:43
Mathematisches Problem (Steigungsverhältnis) Chrishy ActionScript 1 1 29-01-2002 12:00


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

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


Copyright ©1999 – 2012 Marc Thiele