Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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?

Geschrieben

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.

Geschrieben

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.

Geschrieben
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]

Geschrieben

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.

Geschrieben
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]

Geschrieben
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,... :(

Geschrieben

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);!

Geschrieben
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.... !!!!! :rolleyes: :eek: :rolleyes: :eek:

Wir werden alle sterben!!! ;)

toller Beitrag,.... weiter so.. :confused:

Geschrieben

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 :-)

Geschrieben

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! =)

Geschrieben
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:

Geschrieben
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.

Geschrieben
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)));

}

?>

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...