Mailinglisten-Archive |
Frank Hornung wrote: > Hallo Liste. > > Kann mir jemand erklären wie folgendes sein kann? Die Kommentare stellen > die Ausgabe dar. > > <?php > $a = 0.1; > $b = 1; > $Zahl = $a + $a + $a + $a + $a + $a + $a + $a + $a + $a; > echo $Zahl . "\n"; // 1 > echo $Zahl - $b . "\n"; // -1.11022302463E-016 > echo $a + $a + $a + $a + $a + $a + $a + $a + $a + $a - $b . "\n"; // > -1.11022302463E-016 > echo ($a + $a + $a + $a + $a + $a + $a + $a + $a + $a) - $b . "\n"; // > -1.11022302463E-016 > echo (0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1) . "\n"; > // 1 > echo (0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1) - 1 . > "\n"; // -1.11022302463E-016 > ?> ja das ist so bei Float-Zahlen, nicht nur in PHP, in anderen Sprachen auch, hängt von der Genauigkeit ab mit der Float-Zahlen behdanelt werden wenn es dennw ichtig ist kannst du inder php.ini die genauigkeit für FLOAT-Werte erhöhen, weiß aber nciht ob es was bringt, habs noch nie probiert ; The number of significant digits displayed in floating point numbers. precision = 14 kann aber auch sein das sich dieser Wert nur auf die Darstellung auswirkt, ansonsten gibts da vielleicht auch Optionen beim übersetzen von PHP womit du die Genauigkeit erhöhen kannst. -- Sebastian Mendel (www.sebastianmendel.de) *www.warzonez.de* | www.tekkno4u.de | www.nofetish.com
php::bar PHP Wiki - Listenarchive