You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++如何实现整数浮点数混合输入求和并按对应格式输出

C++ 实现自适应整数/浮点数求和输出的方案

核心思路

统一使用double类型接收输入,同时兼容整数和浮点数输入,输出时利用格式规则自动适配结果形式,省略无意义的尾部小数零。

方法1:C风格接口实现

使用%g格式符输出,该格式符会自动去掉尾部的小数零和多余的小数点,正好符合需求:

#include <stdio.h>
#include <math.h> // 如需精度校验可引入

int main() {
    double a, b;
    // 用%lf读取双精度浮点数,兼容整数、浮点数输入
    scanf("%lf %lf", &a, &b);
    double sum = a + b;
    // %g自动适配输出格式,%.9g可指定最多保留9位有效数字,按需调整
    printf("%g\n", sum);
    return 0;
}

方法2:C++ iostream接口实现

C++标准输出流默认的浮点输出规则就会自动省略尾部零和多余小数点,如需更高精度可手动设置有效位数:

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    double a, b;
    cin >> a >> b;
    double sum = a + b;
    // 可选:设置最多保留10位有效数字,默认是6位
    cout.precision(10);
    cout << sum << endl;
    return 0;
}

浮点数精度问题适配

如果涉及复杂运算可能出现浮点数精度误差(比如理论上的整数结果实际存储为2.999999999999或3.000000000001),可以增加误差范围判断后输出:

const double EPS = 1e-9; // 误差阈值,按需调整
if (fabs(sum - round(sum)) < EPS) {
    // 误差在允许范围内,判定为整数,转整型输出
    cout << (long long)round(sum) << endl;
} else {
    cout << sum << endl;
}

内容的提问来源于stack exchange,提问作者Renato Rak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 02:30:00