Math 为什么我的百分比计算失败?
我试图根据上面的内容计算一个价值(一个项目的总销售额)与另一个价值(所有项目的总销售额)的百分比,并得出以下代码:Math 为什么我的百分比计算失败?,math,division,percentage,Math,Division,Percentage,我试图根据上面的内容计算一个价值(一个项目的总销售额)与另一个价值(所有项目的总销售额)的百分比,并得出以下代码: private double GetPercentageOfItem(decimal totPrice, decimal grandTotalPrice) { if ((totPrice <= 0.0M) || (grandTotalPrice <= 0.0M)) { return 0.0; } if (totPrice
private double GetPercentageOfItem(decimal totPrice, decimal grandTotalPrice)
{
if ((totPrice <= 0.0M) || (grandTotalPrice <= 0.0M))
{
return 0.0;
}
if (totPrice == grandTotalPrice)
{
return 100.0;
}
//First: work out the difference (increase) between the two numbers you are comparing.
//Increase = New Number - Original Number.
double diff = Convert.ToDouble(grandTotalPrice) - Convert.ToDouble(totPrice);
//Then: divide the increase by the original number and multiply the answer by 100.
double prcntg = diff / Convert.ToDouble(totPrice);
//% increase = Increase ÷ Original Number × 100.
return prcntg*100;
}
totPrice是单个TotalPrice值
但是,我并没有得到我期望的值,比如3.0%左右(或者2.N,或者1.N,或者0.N),而是在每个百分比成员中得到了异常的值,比如“318940.70340793”,分配方式如下:
foreach (DataRow productUsageByMonthDataRow in dtUsage.Rows)
{
. . .
Decimal totPrice
Convert.ToDecimal(productUsageByMonthDataRow["TotalPrice"]);
. . .
var pupd = new ProduceUsagePivotData
{
ItemCode = itemCode,
ItemDescription = desc,
Unit = unit,
MonthYear = monthYear,
Quantity = qty,
TotalPrice = totPrice,
IsContractItem = contractItem,
Percentage = GetPercentageOfItem(totPrice, grandTotalPrice)
};
. . .
在我测试的数据中,grandTotalPrice为687149.867,第一个总销售额为215.38;那么,这如何等于318940.70340793
更新
由于几个(我接受了第一个)的回答,以及我自己独特的繁荣、咒语和巴洛克式的句读,我最后得出这样的结论:
private double GetPercentageOfItem(decimal totPrice, decimal grandTotalPrice)
{
if ((totPrice <= 0.0M) || (grandTotalPrice <= 0.0M))
{
return 0.0;
}
if (totPrice == grandTotalPrice)
{
return 100.0;
}
double d = Convert.ToDouble(totPrice) / Convert.ToDouble(grandTotalPrice) * 100;
return Math.Round(d, 2);
}
private double GetPercentageof Item(十进制totPrice,十进制GrandTotPrice)
{
如果((totPrice基于你所说的你所期望的……似乎你在寻找项目(1)占总数的百分比
例如,如果Item1=10美元,而totalCost=100美元
那么你要找的百分比是10%
在这种情况下,您只需将itemCost除以totalcost,然后乘以100
var percent = itemCost / totalCost * 100;
(10/100*100)=10%
如果你实际上是在寻找增长的百分比,那么你得到的数字是正确的
想想当有人说“我们已经看到了200%的增长”这意味着价值翻了一番…所以如果我们看看你得到的数字318940.70340793%
如果我们除以100,我们得到3189.407
3189*215=687149.867(近似值)
因此,如果您要查找的是比您得到的值正确的增加百分比,但是如果您要查找Item1与GrandTotal相比的成本百分比,那么请使用我上面的公式
希望这有帮助!基于您所说的您期望的……似乎您正在寻找项目(1)占总数的百分比
例如,如果Item1=10美元,而totalCost=100美元
那么你要找的百分比是10%
在这种情况下,您只需将itemCost除以totalcost,然后乘以100
var percent = itemCost / totalCost * 100;
(10/100*100)=10%
如果你实际上是在寻找增长的百分比,那么你得到的数字是正确的
想想当有人说“我们已经看到了200%的增长”这意味着价值翻了一番…所以如果我们看看你得到的数字318940.70340793%
如果我们除以100,我们得到3189.407
3189*215=687149.867(近似值)
因此,如果您要查找的是比您得到的值正确的增加百分比,但是如果您要查找Item1与GrandTotal相比的成本百分比,那么请使用我上面的公式
希望这有帮助!这不是很简单:Percentage=totPrice/grandTotalPrice*100
?你正在将价格添加到产品使用中。为什么?如果我想以每小时5美元的价格租一辆jetski飞机两个小时,我希望支付10美元。你的算法将向他们收取7美元。如果你使用调试器,只需一步,就可以相对容易地发现此类错误通过逐行代码,同时查看变量中的值。@Pamblam我会很高兴作为一个客户,这个数学对于百分比的增加是正确的。687150比215大3190倍,因此增加了大约319000%。如果您想要一个项目相对于总值的百分比,那么数学就是totPrice/grandTotalPrice*100
难道不只是:Percentage=totPrice/grandTotalPrice*100
?你把价格加到了产品的使用上……为什么?如果我想以每小时5美元的价格租一辆jetski飞机两个小时,我希望支付10美元。你的算法会向他们收取7美元。如果你使用调试器,只需一步就可以相对容易地发现这样的错误逐行查看代码,同时查看变量中的值。@Pamblam我会很高兴作为一个客户,这个数学对百分比的增加是正确的。687150比215大3190倍,因此增加了大约319000%。如果您想要一个项目相对于总值的百分比,那么这个数学就是totPrice/grandTotalPrice*100