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

为何我的C++米转英尺程序输出结果异常?

问题原因分析与解决方案

嘿,我来帮你拆解下这个问题的根源,顺便给你修正后的代码~

核心问题:整数类型的截断行为

你代码里的meters和feet都被声明成了int(整数类型),这是导致结果错误的关键:

  • 当你输入3.25时,cin会自动截断小数部分,只把整数3存入meters变量
  • 之后计算3 * 3.279,结果自然是9.837,和你看到的一致

另外还有个小问题:你在读取用户输入之前就执行了feet = 3.279 * meters;,这时候meters还没被赋值,是一个随机的垃圾值,不过好在你后续输出时没用到这个变量,所以没影响最终结果,但这是个多余且不规范的写法。

修正后的代码

把变量类型换成double(双精度浮点类型),就能完美保留小数部分,得到正确结果:

#include <iostream>
using namespace std;

int main() {
    double meters;
    cout << "Enter Meters to be converted to feet: ";
    cin >> meters;
    double feet = 3.279 * meters;
    cout << feet << " feet " << endl;
    return 0;
}

验证结果

当你输入3.25时,计算3.25 * 3.279 = 10.65675,程序会输出正确的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:31:57