为什么我的C++程序输出不同的数字来将米转换为英尺?

Why is my C++ program outputting a different number for conversion of meters to feet?

本文关键字:转换 数字 程序 C++ 我的 输出 为什么      更新时间:2023-10-16

所以我正在编写一个C++程序来将米转换为英尺。该程序确实兼容。但是,当我设置英尺的值 = 3.279 并为米输入 3.25 时。答案是9.837。有人可以告诉我为什么会发生这种情况吗? (下面的代码(

#include <iostream>
#include <cmath>
using namespace std; 
int main()
{
int meters; 
int feet;
feet = 3.279 * meters; 
cout << "Enter Meters to be converted to feet: "; 
cin >> meters;
cout << meters * 3.279 << " feet " << endl;
}

整数是整数。当一个非整数被分配给整数时,C++小数点之后的所有内容都将被忽略。

int x = 1.123; // x = 1
int y = 1.999; // y = 1

此外,该程序在下一行为其分配值之前使用meters

feet = 3.279 * meters; 

但是feet在此任务之后也永远不会使用。

真正使用的唯一代码部分是

cin >> meters;
cout << meters * 3.279 << " feet " << endl;

当您输入3.25formeters时,整数形式的值将变为3。因此,下一行的计算变为3 * 3.279实际上等于9.837