I am extremely good at math - can sometimes even do integral calculus in my head so never a problem. However, for the record , here is my practice.
Say I am at a bar with food etc and the bill comes to 47.34 - if I am paying by credit card I will round up to 50$ in my head and add 20% to come to 10.00$ tip so the total bill would be $ 57.34. If I were paying cash I would almost certainly give 3 x 20$ bills i.e. 60$ and say - no change needed. That would be a tip of $12.66 . I consider that reasonably generous and not rude and if a waiter(ess) thought it rude and I came to here of it I would not dine in that establishment again and probably even write a slightly negative review on TA.