Are the squares a result of rounding errors?

Several people theorized that the squares in the image could be artefacts caused by floating point limitations.

And the answer is ... no!

Some people implemented my algorithm and got the squares and some got no squares.

Iazid had the idea that the squares could be the result of the type of "integer check".

My original "intger check" was:
if ((n-Math.floor(n)) < 0.1) n is integer

This is asymmetrical as it does see 1.05 as integer, but not 1.95.

On the left is a rendering with a symmetrical version of the "integer check":
if ((n-Math.floor(n)) < 0.1) n is integer
if ((n-Math.floor(n)) > 0.9) n is integer
else n is not an integer

Voila! No squares.

Unless otherwise noted, from here on all renderings are done with the new, symmetrical "integer check".