Rounding Floating Point Number To two Decimal Places in C and C++
Last Updated :
03 May, 2023
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;
printf ( "%.2f" , var);
return 0;
}
|
C++
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)
{
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)
{
char str[40];
sprintf (str, "%.2f" , var);
sscanf (str, "%f" , &var);
return var;
}
int main()
{
float var = 37.66666;
cout << round(var);
return 0;
}
|
Output:
37.67
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...