#include <boost/math/special_functions/round.hpp>
template <class T> T round(const T& v); template <class T, class Policy> T round(const T& v, const Policy&); template <class T> int iround(const T& v); template <class T, class Policy> int iround(const T& v, const Policy&); template <class T> long lround(const T& v); template <class T, class Policy> long lround(const T& v, const Policy&); template <class T> long long llround(const T& v); template <class T, class Policy> long long llround(const T& v, const Policy&); These functions return the closest integer to the argument v. Halfway cases are rounded away from zero, regardless of the current rounding direction. If the argument v is either non-finite or else outside the range of the result type, then returns the result of rounding_error: by default this throws an instance of boost::math::rounding_error. |