我是一名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;
}
Run Code Online (Sandbox Code Playgroud)
问题是这条线
float totalCommission = (mIntHourlyCommission / 100) * totalSales;
无论出于何种原因totalCommission = 0,此方法运行完毕.我调试了这个,这个方法中的所有其他变量都等于它们应该等于的内容.随着我的Java上限以及我对c ++的一点知识告诉我这应该有效.
我在这种方法中遗漏了一些非常简单的东西,还是手头有更大的问题?非常感谢任何和所有的帮助.
100被转换为int和圆形.
你需要使用
float totalCommission = (mIntHourlyCommission / 100.) * totalSales;
Run Code Online (Sandbox Code Playgroud)
要么
float totalCommission = (mIntHourlyCommission / (float) 100) * totalSales;
Run Code Online (Sandbox Code Playgroud)
而是直接将其转换为正确的类型.
以下使用整数除法,其结果也是整数:
mIntHourlyCommission / 100
Run Code Online (Sandbox Code Playgroud)
无论是投mIntHourlyCommission给float,或转100成float文字:100.0f.
| 归档时间: |
|
| 查看次数: |
159 次 |
| 最近记录: |