floor() und float-Variablen: Gaanz evil!!!

Erkenntnis zu PHP des heutigen Tages:
* floor(255) ergibt nicht etwa einen Integer, sondern einen Float-Wert. WTF!?
* floor() kann gründlich in die Hose gehen. Unter Umständen arbeiten wir hier mit einem Float-Wert, bei dem durch die Berechnungen eine Ungenauigkeit entstanden ist, z.b. $test = 7.99999999999999544 anstatt 8. Damit erhalten wir mit floor($test) als Ergebnis 7 anstatt die erwarteten 8. Scheinbar bleibt als einzige Lösung, den Float-Wert vorher mit round() zu runden. bevor floor() ausgeführt wird.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax