Strange float behaviour on Arduino Mega

I'm developing the code on a regular computer, namely OnlineGDB because it works faster and then I just use the results on Arduino (Mega 2560 in this case). This is how I noticed that they produce different results. When trying to find the root cause of the problem I noticed that it starts with the initialization.

The number was calculated and printed with OnlineGDB. When imported to Arduino it seems to lose some precision. The first thing I did was checking the length of the float on both systems. It is 4 in both cases.

It seems that floats can contain the exact number 0.090650305151939. When converted to double it is 0.09065030515193939209. So all the digits are correct. There is no reason for the Arduino to do the rounding.