Mailinglisten-Archive |
Hi Jürgen, und alle die es interessiert: > > 0.15000000000000002 > > Wie soll 0.15000000000000002 = 0.15 sein !? > Und noch ne Frage: Wie kommt es zu dieser Zahl? ganz einfach. ;) Die Rechner können nur in Potenzen von 2 rechnen. Also: .... 16, 8, 4, 2, 1, 1/2, 1/4, 1/8, 1/16, .... Wenn du es also schaffst, 0.05 in Potenzen von 2 zu schreiben, dann kommt es nicht zu solchen Rundungsfehlern. Ach so, und noch eine Einschränkung, bei 32-Bit Float-Zahlen ist bei Zahlen kleiner 1 die Genauigkeit irgendwie so was wie 1/2^30 oder so. Müßte jetzt nachschlagen wie es genau ist. Carsten PS: 0.05 = 1/20 = 1/32 + 1/64 + 1/512 + 1/1024 + ..... also ziemlich krumm.
php::bar PHP Wiki - Listenarchive