Print("Last incoming ask price=",MarketInfo(Symbol(),MODE_ASK)); shows lots of digits

 

Why does this show more then the number of digits that the broker has ? 

Example: 
Print("Last incoming ask price=",MarketInfo(Symbol(),MODE_ASK));
Shows EURUSD,5M, .98806 etc. 

However, it fluctuates and shows things like .9880600008888999999 or some such thing. 
Or sometimes it might show EURUSD,5M .98806000000001 or something not sure how many digits exactly it changes. 

Having said that I have code that use to print fractal price and now it's doing the same thing.
I have not changed this part of the code and it should not be showing so many digits when fractal or MarketInfo has mostly been stable and showing only broker prices. 

I'm not even sure where to begin if the Print of the recommended example of MarketInfo doesn't even show the data that is expected. 

 

Floating-point has an infinite number of decimals, it's you, not understanding floating-point and that some numbers can't be represented exactly. (like 1/10.)
          Double-precision floating-point format - Wikipedia

See also The == operand. - MQL4 programming forum (2013)

If you want to see the correct number of digits, convert it to a string with the correct/wanted accuracy.
          question about decima of marketinfo() - MQL4 programming forum (2016)

Reason: