rint() is used to round of the floating-point argument to an integer value (in floating-point format). You can also determine the current rounding mode using a function fesetround() according to which the rint function returns the rounded integer value.
Syntax double rint(double x); float rint(float x); long double rint(long double x); Header file : cmath Parameters : The rint() function takes a single argument value to round. Returns : By default, the rounding direction is set to 'to-nearest' otherwise the rint() function rounds the argument to an integral value, using the rounding direction specified by fegetround() and returns the value.
Exceptions or Errors
1. If the result of the function is outside the range of the return type, a domain error error may occur.
2. If the argument is 0, it is returned unmodified.
3. If the argument is infinite, it is returned unmodified.
Input : 3.3 Output : 3 Input : 3.5 Output : 4 Input : 3.7 Output : 4
By default, the rounding direction is set to the nearest integer. But using fesetround() function, we can the direction of our choice.
fesetround(FE_DOWNWARD) fesetround(FE_UPWARD) Header file : cfenv
- If rint() function is used with argument 3.7 and fesetround(FE_DOWNWARD) is also used, the output would be 3
- If rint() function is used with argument 3.3 and fesetround(FE_UPWARD) is also used, the output would be 4
rintf() function is same as the rint function. The only difference is that the parameter and return type of the function is float type. The ‘f‘ character appended to ‘rintf‘ stands for float and it signify the parameter type and return type of the function.
Syntax : float rintf(float x);
Here, variables are assigned float type otherwise type mismatch error occurs.
rintl() function is same as the rint function.The only difference is that the parameter and return type of the function is long double type.The ‘l‘ character appended to ‘rintl‘ stands for long double and it signify the parameter type and return type of the function.
Syntax : long double rintl(long double x);
Here, variables are assigned long double type otherwise type mismatch error occurs.
Rated as one of the most sought after skills in the industry, own the basics of coding with our C++ STL Course and master the very concepts by intense problem-solving.
- Iterate over characters of a string in C++
- Difference between int (*p) and int* p?
- 3-way comparison operator (Space Ship Operator) in C++ 20
- How to generate a vector with random values in C++?
- Difference between std::set vs std::vector in C++ STL
- Vector of Maps in C++ with Examples
- Data Conversion in C++
- Order of execution in initializer list in C++
- Unusual behaviour with character pointers
- Header Guard in C++
- Can we write a print statement within if parentheses?
- If memory allocation using new is failed in C++ then how it should be handled?
- Draw an ellipse divided by straight line into two colored part in C++ Graphics
- What happens if we mix new and free in C++?
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.