输出绝对值

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

浮点数先取绝对值再用 .2f 格式化,一步完成舍入与补零;先格式化会产生 -0.00,round 又不补零。

OJ: roj

题目 ID: 1040

难度:入门

标签:输入输出python

创建: 2026-09-29 15:36

更新: 2026-10-04 23:13

题目描述

输入一个浮点数 xx(∣x∣≤10000|x| \le 10000),输出它的绝对值,保留两位小数。

样例:输入 -3.14,输出 3.14。

思路

先 scanf 读入,再用 fabs 取绝对值,最后用 printf("%.2f") 输出;必须先取绝对值再格式化,否则会出现 -0.00。

参考代码

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 15:37
# update_at: 2026-09-29 15:37

import sys


def solve() -> None:
    """读入一个浮点数,输出它保留两位小数的绝对值。"""
    data = iter(map(float, sys.stdin.buffer.read().split()))
    value = next(data)  # 输入只有一个实数,按位置顺序消费
    # 先取绝对值再格式化:负的极小数(如 -0.001)直接格式化会打印出 "-0.00"
    print(f"{abs(value):.2f}")


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 23:13
 * update_at: 2026-10-04 23:13
 */
#include <cstdio>
#include <cmath>

typedef long long ll;

double x; // 输入的浮点数,绝对值不超过 10000

int main() {
    scanf("%lf", &x);          // 读入一个浮点数
    x = fabs(x);              // 先取绝对值,避免负数格式化出 -0.00
    printf("%.2f\n", x);       // 保留两位小数,自动四舍五入并补零
    return 0;
}