I have no idea what you're smoking. The last digit is the 24th binary digit, and 2^-24 is 0.000000059604644775375. The error is 0.00000001192092875, which is in fact less than the value of the last digit (it is about one-fifth as large as the last digit).
And it is extremely easy to prove how 0.1f is represented. Every fraction is repeating, in floating-point form (no matter whether it's decimal or binary or whatever). So 1/10, in binary, is
Code:
0.000110011001
----------------
1010 |1.000000000000
1010
----
01100
1010
----
0010000
1010
----
01100
1010
----
0010000
1010
which I hope i enough for you to see the pattern: three zeroes, then 1100 repeating.
Now, in IEEE floats you write your number in "binary scientific notation", and you get to have 23 digits (no more, no less). So: 1.1001100110011001100110 x 2^-4.
Edit: I wrote that 2^-24 is 0.000000059604644775375. It is, in fact, 0.000000059604644775390625. I apologize for the error.