Setting decimal precision in C
How to print floating point numbers with a specified precision? Rounding is not required. For example, 5.48958123 should be printed as 5.4895 if given precision is 4.
For example, below program sets the precision for 4 digits after the decimal point:
// C program to set precision in floating point numbers #include<stdio.h> #include<math.h> int main() { float num = 5.48958123; // 4 digits after the decimal point num = floor (10000*num)/10000; printf ( "%f" , num); return 0; } |
Output:
5.489500
We can generalize above method using pow()
float newPrecision( float n, float i) { return floor ( pow (10,i)*n)/ pow (10,i); } |
In C, there is a format specifier in C. To print 4 digits after dot, we can use 0.4f in printf(). Below is program to demonstrate the same.
// C program to set precision in floating point numbers // using format specifier #include<stdio.h> int main() { float num = 5.48958123; // 4 digits after the decimal point printf ( "%0.4f" , num); return 0; } |
Output:
5.4896
Contact Us