Das liegt daran, dass sich 0.1 dezimal, binär nur als
0.000110011001100110011001100110011001100110011001 10011001100110011001100110011001100110011001100110 0110011 ...
darstellen lässt. wennst nur mit endlich vielen binärstellen rechnest, dann hast unweigerlich mal einen fehler.
probiers mal mit 0.125
du wirst sehen, es klappt ohne fehler
EDIT - siehe auch posting über meinen