Robert, did you test this in Delphi? I think Delphi has the same "bug".
Some numbers cannot be represented in floating-point form precisely. So some approximation used.