爲什麼代碼鑄造整數除法爲雙用C
double slope = (double)changeY/changeZ
設定斜率爲0.0,在程序中我有,changeX = 20和changeY = 10(兩個整數)時?
爲什麼代碼鑄造整數除法爲雙用C
double slope = (double)changeY/changeZ
設定斜率爲0.0,在程序中我有,changeX = 20和changeY = 10(兩個整數)時?
這聽起來像你正在使用錯誤的變量。試試這個:
int changeX = 20;
int changeY = 10;
double slope = (double)changeY/changeX;
演員操作符()具有比/更高的優先級。該表達式將被評估爲:
changeY
到double
。changeX
隱式轉換爲double
。如果一個操作數是double
,那麼另一個操作數也會平衡到一個double
(這在形式上被稱爲「通常的算術轉換」)。+1:不知道爲什麼這會得到一個立即倒票 - 這是我們迄今爲止最接近正確答案的東西? –
注意* slope *更可能是'changeY/changeX'。 –
@PaulR啊,大概吧。謝謝,我會編輯(儘管它與特定問題無關)。 – Lundin
如何打印?我曾經做過正確的計算,但我沒有正確打印。要正確打印double,請在printf中嘗試%lf。
你能顯示所有的代碼嗎? – Mysticial
您在上面的示例中使用changeY/* changeZ *而不是* changeX *。你確定這是正確的嗎? –
因爲你做錯了什麼。但是,我們不能確切地告訴你這是什麼,有了這些小小的信息。給出一個最小但完整的代碼示例,我們可以看到「changeX」等的聲明和定義以及「slope」的計算。 –