我是一名 Java 开发人员,我也刚刚开始自学 C++。我知道 Java 和 C++ 之间的一些区别,但我不确定这里发生了什么。这是我遇到问题的代码。它只是来自一个教程,所以我不担心准确性。
void calculateHourly() {
float totalWeeklyWage = mFltHourlySalary * mIntHoursWorked;
float totalSales = mIntCostOfShoe * mIntUnitsSold;
float totalCommission = (mIntHourlyCommission / 100) * totalSales;
float grandTotalWage = totalWeeklyWage + totalCommission;
cout << "You will get $" << grandTotalWage << " for selling " << mIntUnitsSold << " shoes in a week."
<< endl;
}
问题是线路
float totalCommission = (mIntHourlyCommission/100) * totalSales;
无论出于何种原因totalCommission = 0
当此方法完成运行时。我已经调试了这个和这个方法中的所有其他变量等于它们应该等于的值。凭借我的 Java 能力和我对 C++ 的了解,我知道这应该可行。
在这个方法中我是否遗漏了一些非常简单的东西,或者手头有更大的问题?非常感谢任何帮助。
最佳答案
100 被转换为 int 并四舍五入。
你需要使用
float totalCommission = (mIntHourlyCommission / 100.) * totalSales;
或
float totalCommission = (mIntHourlyCommission / (float) 100) * totalSales;
而不是直接将其转换为正确的类型。
关于c++ - 在 C++ 中使用数学,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13652063/