Ergebnis 1 bis 8 von 8

Thema: Euro Interface - keine Wert Angabe

  1. #1
    Benutzer
    Registriert seit
    11.11.2006
    Beiträge
    68

    Euro Interface - keine Wert Angabe

    Hallo,
    habe eine Euro Seite und habe das VMS ohne Klamm Anbindung:
    So, nun folgendes Problem so ich bald die Krise bekomme.

    Ich lade Banner per Interface von einem oder auch dem anderen Euro Sponsor hinein.
    Nur es werden mit keine Vergütungs Werte angezeit, immer nur 0,00.

    Wenn ich die Variabele $pay = $ausgabe[$pos+5]; alleine anzeigen lassen, dann sehe ich die Werte, aber wenn etwas umgerechnet werden muss, dann geht es nicht, dann wird mit immer nur 0 angezeigt.

    Die Ausgabe so einer Variabele ist ja nich wie bei losen, sondern zum beispiel: 0.0005

    Wenn ich nun hergehe, und folgendes versuche:


    $verguetung = $pay / 100 * 40;

    Dann bekomme ich immer einen Fehler ---> E-0

    Wie bekomme ich das am besten gebacken.
    Danke für jede jede Hilfe.

    DANKE

  2. #2
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    Welches Interface(system)?

    Normalerweise kann man in den Einstellungen zum IF immer einen Umrechnungswert eingeben, bei dir wäre das ja dann 1.

    Dann kann es natürlich noch sein, dass die Datenbank(spalte) für € Werte im Milli-Cent Bereich zu "ungenau" ist, also bspw. auf double(xx,2) steht, was ja nur 2 Stellen nach dem Komma genau ist, müsstest du dann ändern auf bspw. double(xx,8).

    Oder im Interface findet irgendwo eine Rundung statt, das glaube ich aber kaum.
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  3. #3
    Benutzer
    Registriert seit
    11.11.2006
    Beiträge
    68
    Hallo,
    bin nahe am Wahnsinn, denn verstehe das nicht.
    folgendes, die Beträge werden wie folgt ausgelesen:

    $pay = $ausgabe[$pos+5];

    wenn ich echo ''.$pay.''; habe dann wird alles auch angezeigt, nur umgerechnet wird hier null, egal wie ich es anstelle und mache.

    Bei diesem hier kommt nur null raus:
    $pay_betreiber = round($pay*$ifdata['umrechnung'],2);
    $pay_user = round($pay_betreiber - (($pay*$ifdata['umrechnung']) / 100 * $ifdata['eigen']),2);

    Das geht überhaut nicht

    Hier wenn ich das versuche, zum testen:

    $z1= $pay;
    $z2= $z1 / 2;
    echo $z2;

    Dann kommt folgendes raus: 5E-05

    Ist ja voll krass, und ich Programmiere nicht erst seit gestern, oder sehe ich den Wald vor lauter Bäume nicht?

    Gruß und Danke

  4. #4
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    round(X,2) rundet ja die zahl X auf 2 Nachkommastellen, so wie ich das mit den € Beträgen aber sehe, brauchst du da ja mehr als 2, bspw. 5

    Also 0.01 gerunet auf 2 ergibt 0.01
    0.009 auf 2 sollte 0.01 ergeben
    0.0005 auf 2 ergibt aber dann schon 0.00 (!)

    Da round() einen float Wert zurückgibt, darf PHP den bei der Ausgabe (echo,...) auch in Exponetialschreibweise ausgeben, also

    5E-05 = 5 * 10^-5 = 0.00005


    Also sollte das Ändern des 2. round() Parameters schon mal "intern" Abhilfe schaffen, dann könnte aber das mit der Datenbank auch noch gut zum Problem werden, da also auch die Genauigkeit höher stellen.

    (VMS1 ist halt eher auf Klammlose ausgelegt)
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  5. #5
    Benutzer
    Registriert seit
    11.11.2006
    Beiträge
    68
    Erst mal Danke für Deine Antwort:

    Im Prinzip sollte es ja nicht so schwer sein, aber irgendwo hänge ich noch:

    Mein Versuch:

    $pay_user = round(($ausgabe[$pos+5] / 100 * $ifdata['eigen']),6);


    aber geht nicht, wieder 5E-05

    ich glaube ich mache da schon zu lange rum und finde deshalb die lösung nicht.

    Aber danke für jeden tipp und hilfe

  6. #6
    Erfahrener Benutzer
    Registriert seit
    11.01.2007
    Beiträge
    278
    Hi,

    jetzt verstehe ich auch den Hintergrund des Support-Tickets im SHop. Also zunächst einmal den Typ der Spalten in der DB ändern, wo die Vergütung gespeichert wird:

    Code:
     ALTER TABLE `vms12_gebuchte_werbung` CHANGE `verdienst` `verdienst` DOUBLE( 11, 10 ) NOT NULL DEFAULT '0.00',
    CHANGE `preis` `preis` DOUBLE( 11, 10 ) NOT NULL DEFAULT '0.00'
    Damit können dann auch Euro-Kleinstbeträge gespeichert werden (bis zu 10 Stellen hinterm Komma).

    Wie jpwfour schon richtig geschrieben hat, muß in den Interfaces die Rundung geändert wird, da das VMS ja auf virtuelle Währungen ausgelegt ist (Virtual Monetary System) :

    PHP-Code:
            $pay_betreiber round($pay*$ifdata['umrechnung'],10);
            
    $pay_user round($pay_betreiber - (($pay*$ifdata['umrechnung']) / 100 $ifdata['eigen']),10); 
    Eigentlich sollte der Exponential-Wert beim Eintragen in die Datenbank wieder zu einer Zahl werden. Habe ich zumindest noch nie Probleme mit gehabt, das PHP nicht damit rechnen könnte, bzw. das nicht in der DB gespeichert werden kann (wenigstens dann nicht, wenn der Typ der Spalte DOUBLE ist). Problematisch wird es höchstens, wenn man so einen Wert z.B. als Betrag in einer EF-Url von Klamm verwendet etc.
    Sollte es wie auch immer, nicht funktionieren, dann unter den beiden Zeillen von oben Folgendes einfügen :

    PHP-Code:
            $pay_betreiber number_format($pay_betreiber,10,'.','');
            
    $pay_user number_format($pay_user,10,'.',''); 
    Sollte eigentlich Abhilfe schaffen.

    Gruß
    Marco
    Computer-Logik pur:
    Keyboard not found
    Press <F1> to continue...

  7. #7
    Benutzer
    Registriert seit
    11.11.2006
    Beiträge
    68
    hey super, das hat super geklappt.
    ich dachte ich werde schon wahnsinnig.

    DANKE - DANKE - DANKE - DANKE - DANKE

  8. #8
    Benutzer
    Registriert seit
    21.02.2009
    Beiträge
    44
    hallo habe das selbe problem.
    In welchen dateien muß den was geändert werden?
    Habs ned verstanden

Ähnliche Themen

  1. Euro - keine Klammlose
    Von Fard im Forum Support zu Addons & Erweiterungen
    Antworten: 26
    Letzter Beitrag: 08.02.2011, 08:53
  2. Euro-Interface
    Von P4T2 im Forum [HD] Programmieren
    Antworten: 3
    Letzter Beitrag: 09.05.2010, 17:22
  3. interface lädt keine Banner
    Von donmausi im Forum [HD] Programmieren
    Antworten: 2
    Letzter Beitrag: 01.02.2010, 20:49
  4. [VMS 1.2.3] interface webmasterlose - keine Banner
    Von blendstyle im Forum Support zum VMSone
    Antworten: 4
    Letzter Beitrag: 09.07.2008, 23:34
  5. vms interface wml keine banner mehr
    Von mailtausch4000 im Forum [HD] Programmieren
    Antworten: 9
    Letzter Beitrag: 30.03.2008, 22:32

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •