in reply to for loop with float

it adds 0.09 at a different point
Not quite, it adds 0.099999999. That's just the sort of thing you should expect with floating point numbers in any language. See Floating point accuracy problems on Wikipedia

Unless I state otherwise, all my code runs with strict and warnings