I have this simple code:
ep = 1 - 80000000000 (-(199999/200000) + 1/E^(1/200000))
ep // N
-8.27404*10^-8
N[ep, MachinePrecision]
-8.27404*10^-8
Block[{$MaxExtraPrecision = 500}, ep // N]
-8.27404*10^-8
All these results are incorrect, since in fact ep>0; they also seem to contradict the following: Quoting from the Mathematica tutorial ArbitraryPrecisionNumbers:
[...] the Wolfram Language keeps track of which digits in your result could be affected by unknown digits in your input. It sets the precision of your result so that no affected digits are ever included. This procedure ensures that all digits returned by the Wolfram Language are correct, whatever the values of the unknown digits may be.
N[ep, 10]
1.666664583*10^-6
This seems to be correct.
What is wrong in my understanding or in Mathematica's behavior?