Home :: International :: Manuals :: Howto :: FAQ :: Man Pages :: Email Login

 
 

 

Fließkomma-Zahlenwerte

Fließkomma-Zahlenwerte ("floats", "doubles" oder "reelle Zahlen") können durch eine der folgenden Anweisungen zugewiesen werden:

<?php
$a
= 1.234;
$a = 1.2e3;
$a = 7E-10;
?>

Formell:

LNUM          [0-9]+
DNUM          ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
EXPONENT_DNUM ( ({LNUM} | {DNUM}) [eE][+-]? {LNUM})

Die Größe einer Fließkomma-Zahl ist plattformabhängig, dennoch stellt ein Maximum von ~1.8e308 mit einer Genauigkeit von 14 Nachkomma-Stellen einen üblichen Wert dar (das entspricht 64-Bit im IEEE-Format).

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.

Umwandlung nach float

Für Informationen darüber, wann und wie Strings in Float umgewandelt werden, lesen Sie bitte den Abschnitt Umwandlung von Strings in Zahlen. Für die Werte anderer Typen ist die Umwandlung diesselbe, wie wenn der Wert in eine Ganzzahl und dann in einen Float umgewandelt worden wäre. Für weitere Informationen siehe Abschnitt Umwandlung nach integer.

 
 
 
 
Google
  Web Linuxinfor   
 

Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account

Document on this page is part of "PHP Handbuch". See Index Page for more info about Authorship and Copyright.

1999-2005 Linuxinfor.com. No rights reserved.