In your example you have some function $f$ that you can evaluate at $3.0$ and you'd now also like to evaluate at $2.9$ and $3.1$. It's pretty reasonable to ask which you should use calculus to do this.
And there is a very good answer: this is precisely the task that calculus (aka, working with differentials) was intended to solve. If you want to know how $f(x)$ varies as you tweak $x$, calculus gives you a very powerful set of tools.
For simple examples the approach you use works fine.
But what happens when a system has 8 variables, all of which you want to tweak? Multivariate calculus handles this.
What happens if you have a chain of operations and you want to know how changing the input changes the out put at each stage in the chain? The chain rule tells you a simpler way to do this.
What if you want a simplified formula so you can explore how the error in output varies as you vary the input error or see at a glance what's going on? Calculus does this by throwing away small terms that don't contribute much to the answer.
But for simple one off examples there's isn't much harm in using the method you suggested.