rounding – C++ round a double up to 2 decimal places

rounding – C++ round a double up to 2 decimal places

To round a double up to 2 decimal places, you can use:

#include <iostream>
#include <cmath>

int main() {
    double value = 0.123;
    value = std::ceil(value * 100.0) / 100.0;
    std::cout << value << std::endl; // prints 0.13
    return 0;
}

To round up to n decimal places, you can use:

double round_up(double value, int decimal_places) {
    const double multiplier = std::pow(10.0, decimal_places);
    return std::ceil(value * multiplier) / multiplier;
}

This method wont be particularly fast, if performance becomes an issue you may need another solution.

If it is just a matter of writing to screen then to round the number use

std::cout.precision(3);
std::cout << gpa << std::endl;

see

floating points are not exactly represented so by internally rounding the value and then using that in your calculations you are increasing the inexactness.

rounding – C++ round a double up to 2 decimal places

Try this. But your cout statement in else condition, so it wont give the desired output for 3.67924.

if (cin >> gpa)
{     
    if (gpa >= 0 && gpa <= 5) {
        // valid number

        gpa = ceil(gpa * 100);
        gpa=gpa/100;
        break;
    } 
    else
    {    
       cout << Please enter a valid GPA (0.00 - 5.00) << endl;    
       cout << GPA: ;
    }
}

Leave a Reply

Your email address will not be published.