Question: Bug using evalf

An example:

evalf(frac(10^2*exp(1)));

0.8281828

Two digits lost.

And here is even worse:

evalf(frac(10^9*exp(1)));

0.

Correct unswer:

evalf[20](frac(10^9*exp(1)));

0.4590452354

The correct answer can be obtained only significantly increased  Digits. And if it were an intermediate result in a complex calculation? I could just do not know about this bug!

What is the cause of the error and is there  a general method to avoid it?

Thank you.

Please Wait...