1. 第一种方法:先将小数分为正负两部分,正:将整数+1和小数+0.5比较,整数加1大则说明小数不够进1,返回整数,若小数+0.5较大,则说明小数够进1,返回整数加1.
using namespace std;

int main() {

    double d;
    cin >> d;

    // write your code here......
    int a;
    a=d;
    if(d>0)
    {
        if(d+0.5>=a+1)
            cout<<a+1;
        else
            cout<<a;
    }
    else
    {
        if(d-0.5<=a-1)
            cout<<a-1;
        else
            cout<<a;
    }

    return 0;
}
  1. 方法二:统一考虑正负,不再单独考虑,然后统一判断整数和小数之间的差是否大于0.5,若大于,则满足进位,否则不满足进位,然后根据正负进行处理
using namespace std;
#include<math.h>

int main() {

    double d;
    cin >> d;

    // write your code here......
    int a;
    a=d;
    if(fabs(a-d)>0.5)
    {
        cout<<(d>0?a+1:a-1)<<endl;
    }
    else
        cout<<a<<endl;

    return 0;
}