round函数c语⾔,fegetround
在头⽂件中定义int fesetround(int round);(1)(⾃C99以来)
int fegetround();(2)(⾃C99以来)
1)尝试建⽴等于参数参数轮的浮点舍⼊⽅向,该循环⽅向预计是浮点舍⼊宏之⼀。
2)返回对应于当前舍⼊⽅向的浮点舍⼊宏的值。
参数
round-rounding direction, one of floating point rounding macros
返回值
1)成功时为0,否则为⾮零。
2)描述当前舍⼊⽅向的浮点舍⼊宏,或者如果⽅向不能确定,则为负值。
round函数有几个参数注意
当前的舍⼊模式反映了最近的情况,也可以⽤FLT_ROUNDS查询。
例
#include #include #include
#pragma STDC FENV_ACCESS ONvoid show_fe_current_rounding_method(void)
{ printf("current rounding method: "); switch (fegetround()) { case FE_TONEAREST: printf ("FE_TONEAREST"); break;
int main(void){ /* Default rounding method */ show_fe_current_rounding_method(); printf("+11.5 -
> %+4.1f\n", rint(+11.5)); /* midway between two integers */ printf("+12.5 -
> %+4.1f\n", rint(+12.5)); /* midway between two integers */
/* Save current rounding method. */
int curr_method = fegetround();
/* Temporarily change current rounding method. */ fesetround(FE_DOWNWARD); show_fe_current_rounding_method(); p
> %+4.1f\n", rint(+11.5)); printf("+12.5 -> %+4.1f\n", rint(+12.5));
/* Restore default rounding method. */ fesetround(curr_method); show_fe_current_rounding_method();
return 0;}
可能的输出:
current rounding method: FE_TONEAREST+11.5 -> +12.0+12.5 -
> +12.0current rounding method: FE_DOWNWARD+11.5 -> +11.0+12.5 -
> +12.0current rounding method: FE_TONEAREST
参考
C11标准(ISO / IEC 9899:2011):7.6.3.1 fegetround函数(p:212)
7.6.3.2 fesetround函数(p:212-213)
C99标准(ISO / IEC 9899:1999):7.6.3.1 fegetround函数(p:193)
7.6.3.2 fesetround函数(p:193-194)
扩展内容
nearbyintnearbyintfnearbyintl (C99)(C99)(C99)使⽤当前舍⼊模式(函数)舍⼊为整数rintrintfrintllrintlrintflrintlllrintllrintfllrintl (C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)使⽤当前舍⼊模式舍⼊为整数,除⾮结果不同(函数)
| ⽤于fegetround,fesetround 的C ++⽂档 |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论