This has happened on every platform (from C64 to x64) I've coded on and why in Windows I now use "decimal" instead of floats or doubles...
https://stackoverflow.com/questions/618535/difference-between-decimal-float-and-double-in-net
I remember being accused of cheating on my computer programming assignment when my result did NOT end in .99999999999. I had used my TI99/4A instead of one the Commodore PET's in the computer lab. The TI would spit out even #'s like "10" instead of "9.999999999" that the PET's would show.