繁体   English   中英

使用Math with C ++

[英]Using Math With C++

我是一名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;

而是直接将其转换为正确的类型。

以下使用整数除法,其结果也是整数:

mIntHourlyCommission / 100

mIntHourlyCommissionfloat ,或将100转换为float literal: 100.0f

你的mIntHourlyCommission int是否小于100?

一般来说,你永远不应该使用花车来赚钱。 使用可用于处理的最小量的最大int类型(例如long int for cent)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM