C#两个整数的除法错误

C#两个整数的除法错误,c#,C#,我有下面的代码来计算perst中的percentace,但是当我运行这段代码时,对于qxount和acount的所有值,我总是在perst中得到o作为值 int perst; int qcount; int acount; perst = (acount / qcount) * 100; 除以整数时,结果将是整数。这意味着您需要一个值,例如0.75(您似乎认为您将乘以100得到一个百分比),然后返回的整数值将仅为0,它是前导整数。其余部分将与%模数运算符一起使用 但是,如果要获得您想要的百分

我有下面的代码来计算perst中的percentace,但是当我运行这段代码时,对于qxount和acount的所有值,我总是在perst中得到o作为值

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关于除法运算符的文章-。

我认为您有一些整数舍入问题。试试这样的

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);

你不需要用替身。这使百分比向零舍入。如果您需要更精确的结果,请使用double或single。

您不能除以零。在除以一个帐户之前,将其乘以100,这只是一个整数,需要进行扩展,这些变量尚未初始化,默认值为0。您的代码不会编译。请提供编译、运行、展示您已解释的行为的示例代码(它是否出错、产生不正确的输出、什么?),并解释您希望它执行的操作。请尝试初始化这些值。你可能想做
((双)acount/qcount)*100以获取分数。他在post/代码方面有几个问题需要在他达到这一点之前解决。@Servy:同意,但我的假设是他只是遗漏了一些可以推断的实现细节。通过阅读他的问题,我的想法让我相信OP对整数除法的工作原理有一个根本性的误解。我的回答就是这样写的。也许我应该在一个好的文档中添加一个链接,并在其中包含此培训。无论如何,最好是帮助OP将问题修复为一个足够高的质量,这样您就不需要猜测问题是什么,尤其是当有几个可能的候选人时。@Servy:再次,同意。从评论中可以看出,已经有很多人(包括你自己)在谈论这个话题。如果你有建设性的话,请说出来,否则,请投反对票,继续前进。我想说的是,你应该投票结束,不要回答一个不清楚的问题,而不是猜测和试图回答一个不够详细的问题来提供答案。回答不清楚的问题会导致低质量的答案。更准确地说,这个过程“降低”了百分比<代码>26.9%
仍然只有
26%