rint()用于将浮点参数舍入为整数值(采用浮点格式)。您还可以使用函数fesetround()确定当前的舍入模式,根据该函数rint函数将返回舍入的整数值。
语法: double rint(double x); float rint(float x); long double rint(long double x); Header file: cmath 参数: The rint() function takes a single argument value to round. 返回: 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.
异常或错误
1.如果函数的结果超出返回类型的范围,则可能会发生域错误。
2.如果参数为0,则返回原样。
3.如果参数为无穷大,则返回原样。
例子:
Input:3.3 Output:3 Input:3.5 Output:4 Input:3.7 Output:4
// CPP program to illustrate rint()
#include <cmath>
#include <iostream>
using namespace std;
// Driver Program
int main()
{
double a, b, x = 3.3, y = 3.7;
// Saves the rounded value to a variable
a = rint(x);
b = rint(y);
// Prints the rounded value
cout << a << endl;
cout << b;
return 0;
}
输出:
3 4
fesetround() function
默认情况下,舍入方向设置为最接近的整数。但是使用fesetround()函数,我们可以选择方向。
用法:
fesetround(FE_DOWNWARD) fesetround(FE_UPWARD) Header file:cfenv
例:
- 如果将rint()函数与参数3.7一起使用并且还使用了fesetround(FE_DOWNWARD),则输出为3
- 如果将rint()函数与参数3.3一起使用并且还使用了fesetround(FE_UPWARD),则输出为4
// CPP program to illustrate rint()
// with fesetround() function
#include <cfenv>
#include <cmath>
#include <iostream>
using namespace std;
// Driver Program
int main()
{
double x = 3.7, y = 3.3, result;
// setting rounding direction to DOWNWARD
fesetround(FE_DOWNWARD);
result = rint(x);
cout << result << endl;
// setting rounding direction to UPWARD
fesetround(FE_UPWARD);
result = rint(y);
cout << result << endl;
return 0;
}
输出:
3 4
rintf() function
rintf()函数与rint函数相同。唯一的区别是函数的参数和返回类型为浮点型。附加到“ rintf”后面的“ f”字符代表float,它表示函数的参数类型和返回类型。
用法: float rintf(float x);
在此,为变量分配浮点类型,否则会发生类型不匹配错误。
// CPP program to illustrate rinft()
#include <cfenv>
#include <cmath>
#include <iostream>
using namespace std;
// Driver Program
int main()
{
float x = 3.76542, y = 3.37562, result;
// setting rounding direction to DOWNWARD
fesetround(FE_DOWNWARD);
result = rintf(x);
cout << result << endl;
// setting rounding direction to UPWARD
fesetround(FE_UPWARD);
result = rintf(y);
cout << result << endl;
return 0;
}
输出:
3 4
rintl() function
rintl()函数与rint函数相同,唯一的区别是该函数的参数和返回类型为long double类型。附加在'rintl'上的'l'字符代表long double并表示参数类型和返回类型函数的
用法: long double rintl(long double x);
在此,为变量分配了long double类型,否则会发生类型不匹配错误。
// CPP program to illustrate rinfl()
#include <cfenv>
#include <cmath>
#include <iostream>
using namespace std;
// Driver Program
int main()
{
long double x = 3.765426764, y = 3.37562657, result;
// setting rounding direction to DOWNWARD
fesetround(FE_DOWNWARD);
result = rintl(x);
cout << result << endl;
// setting rounding direction to UPWARD
fesetround(FE_UPWARD);
result = rintl(y);
cout << result << endl;
return 0;
}
输出:
3 4
相关用法
注:本文由纯净天空筛选整理自AyushSaxena大神的英文原创作品 rint(), rintf(), rintl() in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。