簡體   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