Inspired by this question, the following doesn't do what I'd expect it to:
float myFloat = 0.6;
Console.WriteLine(myFloat);
// Output: 0.6
I'd expect the above to print out 0.60000002384185791
(the floating point representation of 0.6
) - clearly there is some mechanism here which is making this work when in fact it shouldn't (although as you can see from the linked question it sometimes doesn't work)
What is this mechanism and how does it work?