Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[PHP] round()

Empfohlene Antworten

Veröffentlicht

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?

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.

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.

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]

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

Da kommt bei beiden Befehlen 2.13 raus.

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

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.

Die Gesetze der Mathematik werden auf den Kopf gestellt... Der Weltuntergang ist nahe.... !!!!! :rolleyes: :eek: :rolleyes: :eek:

Wir werden alle sterben!!! ;)

Und was willst du jetzt damit zum Thema sagen *Kopf schüttel*

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

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:

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

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

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:

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.

Jetzt ist gut, kommt bitte wieder zum Thema zurück.

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

}

?>

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.