In this paper, we consider the problem of piecewise affine abstraction of nonlinear systems, i.e., the over-approximation of its nonlinear dynamics by a pair of piecewise affine functions that 'includes' the dynamical characteristics of the original system. As such, guarantees for controllers or estimators based on the affine abstraction also apply to the original nonlinear system. Our approach consists of solving a linear programming (LP) problem that over-approximates the nonlinear function at only the grid points of a mesh with a given resolution and then accounting for the entire domain via an appropriate correction term. To achieve a desired approximation accuracy, we also iteratively subdivide the domain into subregions. Our method applies to nonlinear functions with different degrees of smoothness, including Lipschitz continuous functions, and improves on existing approaches by enabling the use of tighter bounds. Finally, we compare the effectiveness of our approach with existing optimization-based methods in simulation and illustrate its applicability for estimator design.