浮点数向零舍入

GitHub跳转原题关系图返回列表

向零舍入就是丢弃小数部分的截断语义,读入浮点数后直接转换为整数输出即可。

OJ: roj

题目 ID: 1019

难度:入门

标签:输入输出数学python

创建: 2026-09-29 13:31

更新: 2026-10-04 22:37

题目描述

输入一个单精度浮点数,把它向零舍入到整数(正数向下舍入、负数向上舍入),输出一个整数。样例:输入 2.3,输出 2。

思路

向零舍入就是丢弃小数部分,如 2.3→22.3 \to 2、−2.3→−2-2.3 \to -2。浮点数转整数正是这种截断语义,读入后直接转换输出即可,不要用向下取整或四舍五入。

参考代码

Python 版:

python
#!/usr/bin/env python3
# Author by Rainboy blog: https://rainboylv.com github: https://github.com/rainboylvx
# rbook: -> https://rbook.roj.ac.cn  https://rbook2.roj.ac.cn
# rainboy的学习导航网站: https://idx.roj.ac.cn
# create_at: 2026-09-29 13:31
# update_at: 2026-10-28 14:10

import sys


def solve() -> None:
    data = iter(map(float, sys.stdin.buffer.read().split()))
    x = next(data)
    # int() 截断小数部分:正数向下、负数向上,正好就是"向零舍入"
    print(int(x))


if __name__ == "__main__":
    solve()

C++ 版(同一算法):

cpp
/**
 * Author by Rainboy blog: https://rainboylv.com github: https://github.com/rainboylvx
 * rbook: -> https://rbook.roj.ac.cn  https://rbook2.roj.ac.cn
 * rainboy的学习导航网站: https://idx.roj.ac.cn
 * create_at: 2026-10-04 22:37
 * update_at: 2026-10-04 22:37
 */

#include <iostream>
using namespace std;

typedef long long ll;

int main() {
    double x; // 读入的浮点数,用 double 读入即可,整数部分不会失真
    cin >> x;

    // double 转 ll 时隐式截断小数部分,正是题目要求的向零舍入
    // 正数向下(2.3 -> 2),负数向上(-2.3 -> -2)
    ll answer = x;

    cout << answer << endl;
    return 0;
}