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小时内删除。