划分两个整数时出现C#错误

时间:2013-09-27 15:45:47

标签: c#

我有以下代码来计算帖子中的百分比,但是当我运行此代码时,我总是在perst中获得o作为帐户和帐户的所有值的值。

int perst;
int qcount;
int acount;

perst = (acount / qcount) * 100;

3 个答案:

答案 0 :(得分:3)

分割整数时,结果将是整数。这意味着您期望的值为0.75(您似乎认为您将乘以100来获得百分比),然后返回的整数值将仅为0,即前导整数。其余部分可用于%模数运算符。

然而,得到一个你想要的百分比,你需要使用双倍或浮动值来划分。

double perst;
double qcount;
double acount;

perst = (acount / qcount) * 100;

关于除法运算符的MSDN文章 - Good idea to read

答案 1 :(得分:0)

我认为你有一些整数舍入问题。尝试这样的事情。

int perst;
int qcount = 100;
int acount = 5;

perst = Convert.ToInt32(((double)acount / (double)qcount) * 100);

答案 2 :(得分:0)

虽然舍入几乎肯定是错误的(在为变量赋值之后),但以下工作正常:

int a = 62;
int b = 235;
int percentage = 100*a/b;
Console.WriteLine(percentage);

您不需要使用双打。这使百分比朝零。如果您需要更精确的结果,请使用双倍或单个。