C++输出没有小数点.我想知道我哪里做错了


#include<iostream>
using namespace std;
int main ()
{
double avr_apple;
int total_apple, category;

total_apple=13;
category=2;
avr_apple=total_apple/category;

cout<<"average apple is : "<<avr_apple<<endl;

return 0;
}

int不能包含小数点。在行中:

total_apple/category;

total_applecategory都是int,所以当你把它们除以时,你会得到一个没有任何小数点的int

要解决此问题,请将total_apple变量设为双变量或将static_cast设为双:

avr_apple = static_cast<double>(total_apple) / category;

你也可以写:

avr_apple = (double) total_apple / category;

这是同一件事,看起来更简单,但对我来说更困惑,因为现在我有点困惑什么是双重的,total_apple?,category?,整个结果?嗯。我也很困惑这里使用的是哪种类型的铸件,是static_cast还是其他类型的铸件?所以要避免这种情况。

这也包含了一个非常重要的教训,"计算机只做它被要求做的事情,没有别的,所以如果你想要正确的结果,一定要告诉它正确的事情。">

相关内容

最新更新