Nicole: DOUBLE sauber trennen

Hallo erst mal ;-)

Um einen Geldbetrag, den ich aus Mysql(doubleformat) hole,
zu trennen in cent und Euro nutze ich string funktionen
wie strtok oder substr.

Aber auch wenn das bisher klappt, so mache ich mir doch
Kompatibilitätssorgen, falls ich mal eine andere PHP
Version nutze, ... weil eigentlich keine saubere Lösung.

Denn bei Zahlen und Nullen und der damit
verbundenen PHP Typenkonvertierung können sich schnell
Unterschiede zwischen den PHP versionen ergeben wie ich
schon  feststellen musste.

Lange Rede, kurzer Sinn...
Gibt es eine saubere Trennmethode um Doubles aufzusplitten,
die nicht stringorientiert ist.

( also kein ex/implode, substr,strtok,etc.)

Gruss Nikki

  1. Hallo erst mal ;-)

    Haaalooo (so früh am Morgen - muß mich gleich erstmal krankschreiben lassen .)

    Lange Rede, kurzer Sinn...
    Gibt es eine saubere Trennmethode um Doubles aufzusplitten,
    die nicht stringorientiert ist.

    wenn Deine Doubles genau zwei Stellen hinter dem komma haben bzw. abgerunden werden dürfen (in der zweiten Stelle) kannst Du diese Standardlösung nehmen:

    Betrag: dreimarkeinundfünfzig
    3.51 * 100 = 351    (kannst Du mir folgen ;)
    351  : 100 =   3    <- DM-Wert
    351  % 100 =  51    <- Pfennig-Wert
     51  : 100 =   0.51 <- Pfennig-Wert in DM

    falls Deine Double-Werte mehr als zwei Nachkommastellen haben mußt Du eben nach der Verhundertfachung entsprechend runden.

    Gruß, Andreas

    1. Hallo Andreas,

      3.51 * 100 = 351    (kannst Du mir folgen ;)
      351  : 100 =   3    <- DM-Wert
      351  % 100 =  51    <- Pfennig-Wert

      wald vor Bäumen ... ;-)

      Na klar das ist es .

      Hatte zwar in der Vergangenheit schon öfter Probleme
      mit Modulus (s.u.), aber das ist die beste Lösung, DANKE.

      Modulus Problematik:
      http://forum.de.selfhtml.org/archiv/2003/5/46882/#m255797

      Gruss Nikki

      p.s. Kannst du mir sagen ob ich hier einen Link anklickbar
      machen kann ? <a href..>link</a>geht nicht.

      1. Hatte zwar in der Vergangenheit schon öfter Probleme
        mit Modulus (s.u.),

        es heißt Modulo :)

        aber das ist die beste Lösung, DANKE.

        sie ist vor allem PHP-unabhängig.

        p.s. Kannst du mir sagen ob ich hier einen Link anklickbar
        machen kann ? <a href..>link</a>geht nicht.

        ich kanns's jetzt nicht vormachen, weil dann eben der anklickbare Link erscheint und nicht die Syntax, aber sowas steht hier in der FAQ:
        http://forum.de.selfhtml.org/faq/
        dort Nr. 19

        Gruß, Andreas

  2. Hallo,

    Gibt es eine saubere Trennmethode um Doubles aufzusplitten,
    die nicht stringorientiert ist.

    ( also kein ex/implode, substr,strtok,etc.)

    Probiere es mal so:

    <?php

    $zahl=12.345;
    //$stellen=3;

    $vordemkomma=intval($zahl);
    $stellen=strlen(strval($zahl-$vordemkomma))-2;
    $nachdemkomma=($zahl-$vordemkomma)*pow(10,$stellen);

    print $zahl."<br>".$vordemkomma."<br>".$nachdemkomma;

    ?>

    Falls die Stellenanzahl nicht bekannt ist (hier auskommentiert), dann bedarf es doch Stringfunktionen, die aber nicht von der PHP-Version abhaengen sollten.

    MfG, Thomas