Strange float behaviour on Arduino Mega

No; for any exact binary floating point value with digits to the right of the decimal point, the last non-zero digit must be a 5: 0.5, 0.25, 0.125, 0.0625 etc.

In this case, the closest exact values are (scroll to the bottom here)

  • 32-bit: 9.065030515193939208984375 / 100
  • 64-bit: 9.0650305151939003511785131195210851728916168212890625 / 100