I am trying to find a round function in the standard library but I didn't see one. Is there any way to round a double to n decimals in c++?
Asked
Active
Viewed 2.3k times
4
-
floor(v*pow(10,n)+0.5)/pow(10,n). – Vaughn Cato Mar 24 '12 at 06:01
1 Answers
12
C++11 has std::round in <cmath>
.
Without that you can use std::floor and std::ceil on adjusted numbers. E.g. std::floor(n * 100 + 0.5)/100
to round to two decimal places.
Although it should be noted that rounding isn't entirely trivial; There are complications such as choosing to round toward zero, toward negative infinity, round to even, etc. If you're writing programs for production be sure you understand the rounding requirements for your domain.

James Mart
- 560
- 3
- 16

bames53
- 86,085
- 15
- 179
- 244