我有下面的代码来计算百分比在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