This is not an issue. The numerical approximation function N simply
evaluates the expression at a given precision. There is no guarantee
on the overall result as cancellation may occur. If you want accurate
results, use interval or ball arithmetic. If you note your symbolic
expression "expr" you can use
for prec in [30,40,50,60,70,80,90]:
print(RealBallField(prec)(expr))
and get
[+/- 6.80e+7]
[+/- 6.64e+4]
[+/- 66.4]
[0.3 +/- 0.0578]
[0.3192 +/- 6.33e-5]
[0.3192060 +/- 8.68e-8]
[0.
3192059665 +/- 4.33e-11]
which is correct at each step.
Vincent