oneside Geschrieben 12. Oktober 2004 Geschrieben 12. Oktober 2004 Hallo Leutz, irgendwie stehe ich auf dem Schlauch... Wenn ich folgenden Befehl ausführe: round (2.135,2); dann müsste doch eigentlich 2.14 rauskommen oder?
ssambdar Geschrieben 12. Oktober 2004 Geschrieben 12. Oktober 2004 Ja! PS: Ich habe das gerade auf meinem Server ausprobiert und deine Behauptung stimmt. Ich kann in meiner Glaskugel gerade leider nicht erkennen, ob das bei dir anders ist. Wenn dem so sein sollte, dann melde dich noch einmal mit genauer Problembeschreibung.
oneside Geschrieben 13. Oktober 2004 Autor Geschrieben 13. Oktober 2004 Also bei mir kommt bei round(2.135,2) nicht 2.14 raus. Irgendwie kommt da 2.13 raus. Woran könnte das liegen? Ich habe bei mir XAMPP für Windows Version 1.4.2 laufen, da ist die PHP Version 4.3.6 dabei.
kills Geschrieben 13. Oktober 2004 Geschrieben 13. Oktober 2004 Also bei mir kommt bei round(2.135,2) nicht 2.14 raus. Irgendwie kommt da 2.13 raus. Woran könnte das liegen? Ich habe bei mir XAMPP für Windows Version 1.4.2 laufen, da ist die PHP Version 4.3.6 dabei. ich meine das war hier vor kurzem schon ma aufgekommen! ein float 2.135 wird intern als 2.13499999999999999999999999... gespeichert und ein int 2.135 exakt als 2.135 echo round((int)2.135,2); echo round((float)2.135,2); [/PHP]
oneside Geschrieben 13. Oktober 2004 Autor Geschrieben 13. Oktober 2004 Ja bei round((int)2.135,2) kommt 2 raus und bei round((float)2.135,2) kommt 2.13 raus. Das stimmt dann aber trotzdem nicht. Da treten ja dann Rundungsfehler auf.
kills Geschrieben 13. Oktober 2004 Geschrieben 13. Oktober 2004 Ja bei round((int)2.135,2) kommt 2 raus und bei round((float)2.135,2) kommt 2.13 raus. Das stimmt dann aber trotzdem nicht. Da treten ja dann Rundungsfehler auf. ja sorry war grad ein bissl verpeilt. int sind ja ganz zahlen, die können keine nachkomma stellen haben! verusch ma: echo round((double)2.135,2); echo round((float)2.135,2); [/PHP]
oneside Geschrieben 13. Oktober 2004 Autor Geschrieben 13. Oktober 2004 Da kommt bei beiden Befehlen 2.13 raus.
kills Geschrieben 13. Oktober 2004 Geschrieben 13. Oktober 2004 Da kommt bei beiden Befehlen 2.13 raus. hm sorry, ich weiss zwar warum das so ist, aber ich kann dir grad nicht sagen wie du dem Problem entgegen kommen kannst,...
oneside Geschrieben 13. Oktober 2004 Autor Geschrieben 13. Oktober 2004 Da dürften ja viele ein Problem mit haben wenn Beträge gerundet werden... Ich werd mal die Jungs von Xampp anschreiben, ob die was wissen.
oscha Geschrieben 13. Oktober 2004 Geschrieben 13. Oktober 2004 Die Gesetze der Mathematik werden auf den Kopf gestellt... Der Weltuntergang ist nahe.... !!!!! :eek: :eek: Wir werden alle sterben!!!
Wolle Geschrieben 13. Oktober 2004 Geschrieben 13. Oktober 2004 Und was willst du jetzt damit zum Thema sagen *Kopf schüttel*
Shaun Geschrieben 13. Oktober 2004 Geschrieben 13. Oktober 2004 Das Problem scheint ein allgemeines PHP-Problem zu sein und wird auch in der Onlinedokumentation behandelt. Als Lösungsansatz könntest du folgende Funktion nutzen: <?php function myRound($number, $fuzz = 0.00000000001){ return sprintf("%.2f", (($number>=0) ? ($number+$fuzz) : ($number-$fuzz))); } ?> Halt anstatt round($bla); einfach myRound($bla);!
kills Geschrieben 13. Oktober 2004 Geschrieben 13. Oktober 2004 Das Problem scheint ein allgemeines PHP-Problem zu sein und wird auch in der Onlinedokumentation behandelt. Als Lösungsansatz könntest du folgende Funktion nutzen: <?php function myRound($number, $fuzz = 0.00000000001){ return sprintf("%.2f", (($number>=0) ? ($number+$fuzz) : ($number-$fuzz))); } ?> Halt anstatt round($bla); einfach myRound($bla);! gut zu wissen,.... Die Gesetze der Mathematik werden auf den Kopf gestellt... Der Weltuntergang ist nahe.... !!!!! :eek: :eek: Wir werden alle sterben!!! toller Beitrag,.... weiter so.. :confused:
oneside Geschrieben 13. Oktober 2004 Autor Geschrieben 13. Oktober 2004 Also ein Kollege hat die PHP Version 4.3.4 und der sagt, bei dem gehts. Ich habe einmal die Version 5.0.2 und einmal Version 4.3.6 und es geht net. Der Lösungsvorschlag funktioniert! Vielen dank, da wäre ich sonst aufgeschmissen gewesen :-)
oscha Geschrieben 14. Oktober 2004 Geschrieben 14. Oktober 2004 toller Beitrag,.... weiter so.. :confused: es ist doch immer wieder schön anzusehen, wie manche leute sich über jedem kleinen bischen aufregen. ich stelle mir das gerade bildlich vor, wenn man über die straße läuft und sich über jeden kaugummi auf dem boden, über jeden freilaufenden köter, über jeden abgasgeruch, jeden sonnenstrahl weils zu hell ist, jede wolke, weils zu dunkel ist, jeden ironisch gemeinten beitrag in einem forum.... aufregt... weiter so! =)
kills Geschrieben 14. Oktober 2004 Geschrieben 14. Oktober 2004 es ist doch immer wieder schön anzusehen, wie manche leute sich über jedem kleinen bischen aufregen. ich stelle mir das gerade bildlich vor, wenn man über die straße läuft und sich über jeden kaugummi auf dem boden, über jeden freilaufenden köter, über jeden abgasgeruch, jeden sonnenstrahl weils zu hell ist, jede wolke, weils zu dunkel ist, jeden ironisch gemeinten beitrag in einem forum.... aufregt... weiter so! =) wenn du keine produktiven Beiträge Leisten willst, dann mach das im Off-Topic oder im Test-Forum. Sowas gehört hier einfach nicht hin,... :mod:
oneside Geschrieben 14. Oktober 2004 Autor Geschrieben 14. Oktober 2004 es ist doch immer wieder schön anzusehen, wie manche leute sich über jedem kleinen bischen aufregen. ich stelle mir das gerade bildlich vor, wenn man über die straße läuft und sich über jeden kaugummi auf dem boden, über jeden freilaufenden köter, über jeden abgasgeruch, jeden sonnenstrahl weils zu hell ist, jede wolke, weils zu dunkel ist, jeden ironisch gemeinten beitrag in einem forum.... aufregt... weiter so! =) Wo Kills Recht hat hat er Recht, ich erwarte in diesem Post ein Hilfestellung und keine Free-Poster, die irgendwelche Themenfremden Beiträge posten. Dafür gibt es andere Foren.
Wolle Geschrieben 14. Oktober 2004 Geschrieben 14. Oktober 2004 Jetzt ist gut, kommt bitte wieder zum Thema zurück.
kills Geschrieben 14. Oktober 2004 Geschrieben 14. Oktober 2004 Jetzt ist gut, kommt bitte wieder zum Thema zurück. Das Thema hat sich bereits erledigt! Lösung: <?php function myRound($number, $fuzz = 0.00000000001){ return sprintf("%.2f", (($number>=0) ? ($number+$fuzz) : ($number-$fuzz))); } ?>
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden