Well, the article kbw pointed you at gives all the gory details, but the answer in a nutshell is because that's the closest it can get.
Remember, computers use base 2 not base 10. So it stores the fraction using binary, too. So rather than storing 0/10 + 4/100 + 0/1000 + 9/10000 + ... it's storing a/2 + b/4 + c/4 + ... where a, b, c are all either 0 or 1. As only a limited number of places are stored, it's not always possible to represent decimal fractions totally accurately.
As you did as the computer to store "0.040943422872233700" (it would have but zeroes in the space space).