phpbar.de logo

Mailinglisten-Archive

[php] Problem mit in_array

[php] Problem mit in_array

Carsten Sierks php_(at)_phpcenter.de
Tue, 3 Sep 2002 10:25:21 +0200


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