Open In App

Rounding Floating Point Number To two Decimal Places in C and C++

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

How to round off a floating point value to two places. For example, 5.567 should become 5.57 and 5.534 should become 5.53

First Method:- Using Float precision 

C




#include <stdio.h>
int main()
{
    float var = 37.66666;
 
    // Directly print the number with .2f precision
    printf("%.2f", var);
    return 0;
}


C++





Output

37.67

Time Complexity: O(1), as the execution time does not depend on the size of the input.

Space Complexity: O(1), as it only uses a fixed amount of memory to store a single float variable and does not allocate any dynamic memory.

Second Method: Using integer typecast If we are in Function then how return two decimal point value

C++




#include <iostream>
using namespace std;
float round(float var)
{
    // 37.66666 * 100 =3766.66
    // 3766.66 + .5 =3767.16    for rounding off value
    // then type cast to int so value is 3767
    // then divided by 100 so the value converted into 37.67
    float value = (int)(var * 100 + .5);
    return (float)value / 100;
}
 
int main()
{
    float var = 37.66666;
    cout << round(var);
    return 0;
}


Output:
37.67

Time complexity:
The round function only performs a few basic arithmetic operations, so its time complexity is constant or O(1). 

Space complexity:
The round function creates a single float variable named value, so its space complexity is constant or O(1).

Third Method: using sprintf() and sscanf() 

C++




#include <iostream>
using namespace std;
float round(float var)
{
    // we use array of chars to store number
    // as a string.
    char str[40];
 
    // Print in string the value of var
    // with two decimal point
    sprintf(str, "%.2f", var);
 
    // scan string value in var
    sscanf(str, "%f", &var);
 
    return var;
}
 
int main()
{
    float var = 37.66666;
    cout << round(var);
    return 0;
}


Output:
37.67

 



Last Updated : 03 May, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads