Rounding up and down a number C++
I'm trying to allow my program to round a number up and down respectively.
For example, if the number is 3.6
, my program is suppose to round up the nearest number which is 4 and if the number is 3.4
, it will be rounded down to 3.
I tried using the ceil
library to get the average of 3 items.
results = ceil((marks1 + marks2 + marks3)/3)
However, the ceil
only rounds the number down but does not roll the number up.
There's 1 algorithm i stumbled upon
var roundedVal = Math.round(origVal*20)/20;
but i still can't figure a formula for some problem.
std::ceil
rounds up to the nearest integer
std::floor
rounds down to the nearest integer
std::round
performs the behavior you expect
please give a use case with numbers if this does not provide you with what you need!
The function you need is called round, believe it or not.
ceil
rounds UP, btw. That is, to the closest larger integer. floor
rounds down.
You don't need a function to round in C or C++. You can just use a simple trick. Add 0.5 and then cast to an integer. That's probably all round does anyway.
double d = 3.1415;
double d2 = 4.7;
int i1 = (int)(d + 0.5);
int i2 = (int)(d2 + 0.5);
i1 is 3, and i2 is 5. You can verify it yourself.