I have a similar question as [Precision of FindRoot][1] but slightly different. Consider getting an `InterpolatingFunction` `f[t]` from `NDSolve` then finding a root with `FindRoot`:

    Clear[f]
    fsol = NDSolve[{f''[t] - f'[t] + f[t] - 1 == 0, f[0] == 1, 
        f'[0] == 1}, f, {t, 0, 20}, WorkingPrecision -> $MachinePrecision];
    f[t_] = Evaluate[f[t] /. fsol];

    Plot[f[SetPrecision[t, Infinity]], {t, 0, 20}, PlotRange -> All]

    t0 = t /. FindRoot[f[t] == 10, {t, 18}, WorkingPrecision -> 50]
    Precision@f[t0]
    Precision@t0

Output:

[![f[t]][2]][2]

    18.136956334574359755720315216764489747727661914414
    
    11.6327
    
    50.

The precision of my root `t0` is equal to the `WorkingPrecision` I gave in `FindRoot`, despite that that is higher than the `Precision` of `f` itself, which came from `NDSolve`. My intuition about precision as a concept may be failing me here, but this does not seem right. My hunch is that if you use FindRoot to solve `f[t]==number`, then your answer for `t` should be no more precise than the precision of `f` at that `t`.

Even if Mathematica is technically right (is it?), I feel it's failing my purposes. There's real error introduced by the imprecision of my `f[t]`. Once I get `t0` and plug it in (in my actual code it won't be back into `f[t]`!), I want it to reflect that `t0` is imprecise because it was solving for an `f[t]` that was imprecise.

So I'd like answers to (a) Is Mathematica misusing precision here? And if not, then (b) Is there a way to make it reflect precision in a way that seems honest to me?

  [1]: https://mathematica.stackexchange.com/questions/118242/precision-of-findroot
  [2]: https://i.sstatic.net/hHTwl.png