Zum Inhalt springen

PHP Zahlen nicht als Potenz ausgeben!


Empfohlene Beiträge

Also, noch ein Problem. Ich führe mit ein paar Zahlen Rechenoperationen durch. Das Ergebnis ist so groß das es mir als 1.8494380618592E+020 ausgegeben wird. Wie kann ich das so ausgeben das ich keine Potenz darin habe? Kann ruhig ein String sein - also ich muss damit nicht weiter rechnen können.

Bine

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also hier nochmal eine Verdeutlichung:

$zahl=123451234512345123451234512345;

normale Ausgabe:

echo $zahl;

1.2345123451235E+29

echo number_format($zahl, 0, "","");

123451234512345121227855101952

echo sprintf("%30.0f", $zahl);

123451234512345120000000000000

Woher die Ungenauigkeit:

Fließkomma Präzision

Es ist ziemlich normal, dass einfache Dezimalzahlen wie 0.1 oder 0.7 nicht in ihre internen binären Entsprechungen konvertiert werden können, ohne einen kleinen Teil ihrer Genauigkeit zu verlieren. Das kann zu verwirrenden Ergebnissen führen. So wird floor((0.1 + 0.7) * 10) normalerweise 7 statt des erwarteten Wertes 8 zurück geben (als Ergebnis der internen Entsprechung von 7.9999999999....

Das gründet sich auf die Tatsache, dass es unmöglich ist, manche Dezimal-Zahlen durch eine endliche Anzahl an Nachkomma-Stellen darzustellen. Dem Wert 1/3 entspricht z.B. der interne Wert von 0.3333333. . ..

Deshalb sollten Sie nie den Ergebnissen von Fließkomma-Operationen bis auf die letzte Nachkomma-Stelle trauen und nie solche auf Gleichheit prüfen. Benötigen Sie wirklich eine größere Genauigkeit, sollten sie die mathematischen Funktionen beliebiger Genauigkeit oder die Gmp Funktionen benutzen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Könnte das vielleicht auch noch andere Gründe haben ? PHP-Version, CPU oder ähnliches ?


$zahl=123451234512345123451234512345;
echo $zahl."<br><br>";
echo number_format($zahl, 0, "","")."<br><br>";
echo sprintf("%30.0f", $zahl)."<br><br>";
[/PHP]

gibt bei mir

1.2345123451235E+029

123451234512345120000000000000

123451234512345170000000000000

aus.

:confused:

MfG

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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