Das haben wir fast wöchentlich hier
. Rundungsfehler war schon der richtige Gedanke: Fließkommadarstellung in binär kann nicht alle endlich genauen Dezimalwerte darstellen, da sie z.T. in Binärform periodisch werden, und ab und an - gerade bei Iterativen Prozessen - macht sich doch irgendwann mal die begrenzte Genauigkeit bemerkbar. Bei dir allerdings triff das vermutlich deswegen eher selten auf, da du mit dem floor() immer wieder in relativ gut auflösbare Bereiche kommst, bei größeren Zahlen aber zunehmend enger.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)