为什么这个公式不能用C++计算?

为什么这个公式不能用C++计算?,c++,C++,在这里,我想计算我在第2天售出的糖果数量 int main() { float rate; int left, total, sell ; cout << "rate" ; // the rate that sweets have been sold per day cin >> rate; cout << "sell"; // number of sweets that have been sold in day1.

在这里,我想计算我在第2天售出的糖果数量

int main()
{
float rate;
int left, total, sell ;

cout << "rate" ; // the rate that sweets have been sold per day
cin >> rate;
cout << "sell"; // number of sweets that have been sold in day1.
cin >> sell;
cout << "total"; // total number that the shops originally have
cin >> total;

left = total - sell;

sell = sell*(1+rate*(left/total));
        
cout << sell;
return 0;
}
我想计算第二天售出的糖果数量。 假设输入为比率=0.5,销售=100,总计=10000。 输出应为14950。[ 10000 * 1+0.5*10000-100/10000 ] 但是为什么我在运行程序后仍然得到10000

更新:


不过,我还有一个问题。如果我想输出一个四舍五入的销售值。我怎么做呢?因为我不允许更改变量的数据类型,这意味着它仍然应该是int-sell;在初始化部分。我试过cout如评论中所述,您正在进行整数除法。以下是更正后的代码:-

#include<iostream>
using namespace std;


int main()
{
float rate;
int left, total, sell ;

cout << "rate" ; // the rate that sweets have been sold per day
cin >> rate;
cout << "sell"; // number of sweets that have been sold in day1.
cin >> sell;
cout << "total"; // total number that the shops originally have
cin >> total;

left = total - sell;

sell = sell*(1+rate*(left/(float)total));
        
cout << sell;
return 0;
}

我已经输入了分母。

因为left和total都是整数,所以left/total除法是一个整数除法,结果是整数。它将不包含任何小数,如果total大于left,则结果将为零。要得到小数,您需要将至少一个变量转换为浮点值。当您得到令人惊讶的结果时,通常是因为无效的假设。通过检查表达式的各个部分(从最里面的部分开始)来验证您的表达式;真是太谢谢你了!我现在得到了正确的答案。非常感谢。我刚刚得到了正确的答案。你的评论很有帮助;不过,我还有一个问题。如果我想输出一个四舍五入的销售值。我怎么做呢?因为我不允许更改变量的数据类型,这意味着它仍然应该是int-sell;在初始化部分。我尝试过Cout如果删除双,会发生什么?如果我只是键入了CUT,那是相当可疑的,因为C++的文档说明使用没有任何类型化的圆。我会考虑的。