计算毛利润W / O卖出

时间:2017-09-27 14:12:29

标签: c# .net accounting

努力使自己成为一个小型项目,可以在不需要卖价的情况下计算毛利。任何人都可以解释为什么这会被标记下来?我们都需要帮助......

我目前有4个文本框,成本,销售,毛利润率,加价

我通常如何做到excel是=Cost/(1-Gp Markup),这将返回$ 14.99卖出@ 12.74美元成本,例如@ 15%

我的代码如下所示,我们将不胜感激:)

private void button2_Click(object sender, EventArgs e)
{
   double cost = Convert.ToDouble(costTextBox.Text);
   double grossmargin = Convert.ToDouble(grossmarginTextBox.Text);
   double grossSellFinal = cost + (cost * grossmargin)/100;
   // This returns $14.65 which is a mark up not gross profit
   sellTextBox.Text = grossSellFinal.ToString();
}

我也试过这个

private void button2_Click(object sender, EventArgs e)
{
   double cost = Convert.ToDouble(costTextBox.Text);
   double grossmargin = Convert.ToDouble(grossmarginTextBox.Text);
   double grossSellFinal = cost / (1 - grossmargin);
   //This returns a sell of -0.91
   sellTextBox.Text = grossSellFinal.ToString();
}

https://www.calculatorsoup.com/calculators/financial/margin-calculator.php?cost=12.74&revenue=14.99&action=solve

2 个答案:

答案 0 :(得分:0)

你的两个计算做了很多不同的事情:

一个是成本* 115% 一个是成本/ 85%

你的第二个例子失败了,因为你有1500%的保证金(你没有除以100)

如果您在第二个例子中使用“0.15”作为毛利率,您应该卖出“14.9882352941176”

答案 1 :(得分:0)

基于您的公式,卖出应等于成本/(1 - 毛利率),其中毛利润率是0到1之间的小数):

private void button2_Click(object sender, EventArgs e)
{
   decimal cost = Convert.ToDecimal(costTextBox.Text);
   decimal grossmargin = Convert.ToDecimal(grossmarginTextBox.Text);
   decimal grossSellFinal = cost / (1 - grossmargin);
   sellTextBox.Text = grossSellFinal.ToString();
}

如果您输入grossmargin作为0到100之间的值,则应将该值除以100:

private void button2_Click(object sender, EventArgs e)
{
   decimal cost = Convert.ToDecimal(costTextBox.Text);
   decimal grossmargin = Convert.ToDecimal(grossmarginTextBox.Text);
   decimal grossSellFinal = cost / (1 - grossmargin/100);
   sellTextBox.Text = grossSellFinal.ToString();
}

同样,如果输入非法值(例如grossmargin = 1),也建议抛出某种错误/警告:

private void button2_Click(object sender, EventArgs e)
{
   decimal cost = Convert.ToDecimal(costTextBox.Text);
   decimal grossmargin = Convert.ToDecimal(grossmarginTextBox.Text);
   if (grossmargin > 100)
   {
       sellTextBox.Text = "Error message here";
   }
   else 
   {
       decimal grossSellFinal = cost / (1 - grossmargin/100);
       sellTextBox.Text = grossSellFinal.ToString();
   }
}

我不确定正确的会计方式来处理除以零的情况,所以上面只是一个例子。我将把实际的实现留给你。