我有下面的代碼來計算百分比在perst,但是當我運行這個代碼時,我總是得到o作爲值的所有值的qxount和acount的值。C#錯誤除以兩個整數
int perst;
int qcount;
int acount;
perst = (acount/qcount) * 100;
我有下面的代碼來計算百分比在perst,但是當我運行這個代碼時,我總是得到o作爲值的所有值的qxount和acount的值。C#錯誤除以兩個整數
int perst;
int qcount;
int acount;
perst = (acount/qcount) * 100;
當分割整數時,結果將是一個整數。這意味着你期望的值是0.75(你似乎認爲你會乘以100來得到一個百分比),那麼返回的整數值將只是0,這是前導整數。其餘的將與%模量運算符一起提供。
但是,得到像你似乎想要的百分比,你需要使用雙打或浮點值進行分割。
double perst;
double qcount;
double acount;
perst = (acount/qcount) * 100;
有關除法運算符的MSDN文章 - Good idea to read。
我認爲你有一些整數舍入問題。嘗試這樣的事情。
int perst;
int qcount = 100;
int acount = 5;
perst = Convert.ToInt32(((double)acount/(double)qcount) * 100);
雖然四捨五入幾乎可以肯定是錯誤以下工作就好了(分配值的變量後):
int a = 62;
int b = 235;
int percentage = 100*a/b;
Console.WriteLine(percentage);
你並不需要使用雙打。這將百分比調整爲零。如果您需要更精確的結果,請使用雙或單。
更準確地說,這個過程「佔據」百分比。 '26.9%'仍然只有'26%'。 –
你不能被零除。 –
除以100之前的乘以100,這只是一個整數路由問題 – AlexH
要展開,這些變量尚未初始化,並且默認值爲0. – MikeTheLiar