Mailinglisten-Archive |
Frank Hornung wrote: > Marco Döhring wrote: > >> "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 erklärt das Phänomen. Und wie die Antwort von Sebastian Tobias > bereits erklärt ist das in (fast ?) allen Programmiersprachen zu finden. > Jedoch würde ich einen Wert wie -0.001 oder ähnliches erwarten. > > man könnte auch wenig 'Casten' zwichendurch, was das ERgebniss verbessern dürfte ... z.b.: echo ((int) (0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1)) - 1 . "\n"; ... keine Ahnung was bei rauskommt, nur so ne Idee ... -- Sebastian Mendel (www.sebastianmendel.de) *www.warzonez.de* | www.tekkno4u.de | www.nofetish.com
php::bar PHP Wiki - Listenarchive