2 weixin 40224801 weixin_40224801 于 2017.09.15 21:48 提问

round函数的C语言代码怎么写? 5C

用C语言编写round函数,本人的C语言的math库不能用了,想自己写个round函数

2个回答

songhailiang020607
songhailiang020607   2017.09.16 10:51

首先判断这个数是正数还是负数,然后是整数的话,看小数位是否大于0.5,是的话,就把整数部分加1,然后取整数部分,否则直接取整数部分;负数的处理类似。

u010904759
u010904759   2017.09.17 10:21

int round(double );
返回距离参数最近的整数,如果参数值正好在两个整数的中间位置,则返回距离0较远的那一个整数(即正数则返回大于参数的整数,负数则返回小于参数的整数)。我下面 给你大概实现一下:
int round(double num)
{
int ret = 0; //结果
bool isMid = false; //是否中间
//分正负处理
if(num>=0)
{
//if(num%1 == 0.5 )
if(num%1 >=0.4999999 && num%1<=0.5000001) //当是中间的情况
ret = num/1;
else
ret = (num+0.5)/1;

}else{
        if(num%1 >=0.4999999 && num%1<=0.5000001) //当是中间的情况
            ret = num/1 - 1;
        else
            ret = (num-0.5)/1;
}//else
return ret;

}

Csdn user default icon
上传中...
上传图片
插入图片