PHP Rundungsfehler?

Dieses Thema PHP Rundungsfehler? im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von wibni, 17. Mai 2005.

Thema: PHP Rundungsfehler? Hallo, ich habe in einer Datenbank eine Zahl wie z.B. 11884.585. Nach meiner Abfrage mit PHP gibt er mir mit echo...

  1. Hallo,

    ich habe in einer Datenbank eine Zahl wie z.B. 11884.585.
    Nach meiner Abfrage mit PHP gibt er mir mit echo oder print 11884,585 aus.
    Keine Ahnung wo das Komma plötzlich herkommt...?
    Vesuche ich es mit printf (%0.2f,$cellvalue); entsteht aus dem Ursprungswert 11884.00, welches ja offensichtlich falsch gerundet ist.
    Auch mit echo number_format($cellvalue, 2,->.',->.'); erhalte ich die 11884.00.

    Kann mir jemand sagen was da falsch läuft?
     
  2. Hi,

    In der DB (zumindest bei mySQL, wenn ich mich richtig erinnere :) ) steht der Punkt für ein Komma (also anders rum als in Deutschland) und daher kommt das Komma wenn du das mit php ausgeben lässt.
     
  3. Code:
    <?php
    $zahl = 11884.585;
    echo Zahl: <b>$zahl</b><br>;
    echo number_format: .number_format($zahl,2,,,.).<br>;
    echo round: .round($zahl,2).<br>;
    echo ceil: .ceil($zahl).<br>;
    echo floor: .floor($zahl).<br>;
    printf (printf: %0.2f,$zahl);
    ?>
    gruss conny ;)
     
  4. @Björn:
    also in der DB steht der Wert mit dem Punkt anstelle eines Kommas. das ist klar.
    nach deiner annahme, würde das ja bedeuten, dass php prüft ob ich ein deutsches system habe und mir dann anstelle des punktes eigenmächtig ein komma setzt?

    @conny:
    setze in deinem bsp. $zahl = 11884,585; und dann stehst du genauso vor dem selben problem wie ich. das runden funktioniert nicht mehr. bleibt wohl nur das komma durch den punkt zu ersetzen.

    mir stellt sich aber noch die frage, warum er aus dem punkt in der DB plötzlich ein komma macht??? wenn er es einfach wiedergeben würde, wäre doch alles fein...
    is schon manchmal verwirrend....
     
  5. ;) ;D => http://www.php-guru.de/test/Wibni/number_format.php
     
  6. du hast doch immer noch ein punkt als trennzeichen!?
    zumindest zeigt es das bei mir so an....?

    ersetze mal den punkt durch ein komma: $zahl = 11884,585;
     
  7. Moment, hatte es so verstanden, dass ich die Zahl in setzen sollte ;)

    Punkt durch Komma ersetzen geht nicht wie du schon richtig bemerkt hast.

    Von welchem Datentyp ist überhaupt das Feld in der Tabelle ???
     
  8. BCD, also Binary Coded Dezimals.
    kann natürlich sein, dass er tatsächlich schaut ob ich ein deutsches system habe und den punkt der datenbank eigenmächtig durch ein komma ersetzt.
    obwohl mir das ziemlich weit hergeholt scheint....
     
  9. Teste es mal mit DOUBLE, das geht deftinitiv ;)
    Bei mir jedenfalls ;)
     
  10. hmm...
    kann die datenbank nicht verändern. ist ein 2nd-party product.
    werde wohl einfach das komma mit php durch einen punkt ersetzen...

    na mal sehen....
    thanks anyway ;)
     
Die Seite wird geladen...

PHP Rundungsfehler? - Ähnliche Themen

Forum Datum
Rundungsfehler (?) in Excel Microsoft Office Suite 2. Nov. 2005