-8

我有以下代码来计算 perst 中的百分比,但是当我运行此代码时,对于 qxount 和 acount 的所有值,我总是将 o 作为 perst 中的值。

int perst;
int qcount;
int acount;

perst = (acount / qcount) * 100;
4

3 回答 3

3

除整数时,结果将是整数。这意味着您期望一个值,例如 0.75(您似乎认为您将乘以 100 以获得百分比)然后返回的整数值将只是 0,它是前导整数。余数可通过 % 模运算符获得。

但是,要获得您想要的百分比,您需要使用双精度值或浮点值进行除法。

double perst;
double qcount;
double acount;

perst = (acount / qcount) * 100;

关于除法运算符的 MSDN 文章 -阅读的好主意

于 2013-09-27T15:48:25.643 回答
0

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

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

你不需要使用双打。这会将百分比四舍五入到零。如果您需要更精确的结果,请使用双精度或单精度。

于 2013-09-27T15:56:19.813 回答
0

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

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

perst = Convert.ToInt32(((double)acount / (double)qcount) * 100);
于 2013-09-27T15:50:04.290 回答