B. *_*non -4 c# math percentage
当我输入时,在Windows计算器实用程序中,"15036/18218*100 ="它返回82.53375782193435
我真正想要的是17.47(100 - 82.53),但那是目前的重点.
使用此代码:
// Example: thisQty == 3182; totalQty == 18218
private string GetPercentage(int thisQty, int totalQty)
{
int diff = totalQty - thisQty; // this equates to 15036
double prcntg = (diff/totalQty)*100; // this equates to 0.0 for some reason
return string.Format("{0}%", prcntg);
}
Run Code Online (Sandbox Code Playgroud)
...我的prcntg值为0.0.为什么?ISTM,这与我在Calculator实用程序中手动执行的操作相同.为什么不返回82.53375782193435?
即使正确的数学答案是分数,2 ints 的除法int也是一个.
为了保持小数部分,你必须除以一个包含小数部分的类型的数字(如double或decimal):
Console.WriteLine(GetPercentage(3182, 18218));
private string GetPercentage(int thisQty, int totalQty)
{
int diff = totalQty - thisQty; // this equates to 15036
double prcntg = (diff / (double)totalQty) * 100;
return string.Format("{0}%", prcntg);
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句-如果你投来也没关系double的diff或totalQty-两个它会做的/动作恢复一个double-这意味着保持小数部分