我有以下代码来计算 perst 中的百分比,但是当我运行此代码时,对于 qxount 和 acount 的所有值,我总是将 o 作为 perst 中的值。
int perst;
int qcount;
int acount;
perst = (acount / qcount) * 100;
我有以下代码来计算 perst 中的百分比,但是当我运行此代码时,对于 qxount 和 acount 的所有值,我总是将 o 作为 perst 中的值。
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 a = 62;
int b = 235;
int percentage = 100*a/b;
Console.WriteLine(percentage);
你不需要使用双打。这会将百分比四舍五入到零。如果您需要更精确的结果,请使用双精度或单精度。
我认为您有一些整数舍入问题。尝试这样的事情。
int perst;
int qcount = 100;
int acount = 5;
perst = Convert.ToInt32(((double)acount / (double)qcount) * 100);