«

浮点数向零舍入

点亮灯 发布于 阅读:70 C++


题目描述
输入一个双精度浮点数,将其向零舍入到整数。说明:向零舍入的含义是,正数向下舍入,负数向上舍入。

输入格式
一个双精度浮点数 xx。

输出格式
一个整数,即向零舍入到整数的结果。


代码逻辑是:

输入一个浮点数 a。

如果 a 是正数,取其向下取整(floor)并存入 b(long long 类型)。

如果 a 是负数,取其向上取整(ceil)并存入 b。

输出 b。

#include<iostream>        //引入iostream库,才能使用输入输出流,cin和cout
#include <cmath>  // 包含 floor() 和 ceil() 的声明
using namespace std;        //引入 std 命名空间

double a;       // 声明一个双精度浮点数 a
long long b;    // 声明一个长整型变量 b(64位整数)

int main() {
    cin >> a;   // 输入 a

    if (a > 0.0) {      // 如果 a 是正数
        b = floor(a);    // 向下取整(例如 3.7 → 3)
        cout << b;       // 输出 b
    }
    else {              // 如果 a 是 0 或负数
        b = ceil(a);    // 向上取整(例如 -2.3 → -2)
        cout << b;       // 输出 b
    }

    return 0;
}