微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Java中计算销售佣金

如何解决如何在Java中计算销售佣金

我想知道我如何进行销售佣金的计算,我需要这样做,但我没有。存在与目标相关的出售价值,起初它将小于50%,卖方仅获得1%的收益,而与目标相关的出售价值为50%至70%,卖方获得2.5%的收益。 if的空白在哪里,我不知道要放置什么,因为我不知道如何将少于一半的值甚至一个值放在另一个在这种情况下为50到70 %,e,从71到100%,您将获得3.5%。 我认为“销售目标”属性必须包含在方法中,因为程序必须了解所售出的价值不到目标的一半。

public class Salesman {
    //defining attributes
    private String name;
    private double salesGoal;
    private double totalSold;

    public double calculateCommission() {
        double soldValue;
        if (totalSold <  ) {
            soldValue =(totalSold * 1.01);
        }else if(totalSold >= ){
            soldValue =(totalSold * 1.025);
        }else if(totalSold >= ){
            soldValue =(totalSold * 1.035);
        }else{
            soldValue = 0;
        }

        return soldValue;
    }

}

解决方法

也许这就是您所追求的:

    private String name;
    private double salesGoal;
    private double totalSold;

    public double calculateCommission() {
        double seventyPercentOfSalesGoal = salesGoal * 0.70;
        double fiftyPercentOfSalesGoal = salesGoal * 0.50;
        
        if (totalSold >= seventyPercentOfSalesGoal) {
            return totalSold * 0.025;
        } else if (totalSold >= fiftyPercentOfSalesGoal) {
            return totalSold * 0.01;
        } 
        return 0;
    }

您需要检查较低的阈值之前是否已通过较高的阈值。我还删除了该变量,因为您可以在知道要计算的内容后立即返回一个值。

,

有助于绘制一些图表 What goes in what goes out

输入和输出的内容决定了您的方法签名。

public double calculateCommission(double soldValue,double goal) { 
  return 0d;
}

然后创建某种流程图

Flow diagram

public double calculateCommissionRate(double soldValue,double goal) { 
  double ratio = soldValue / goal;

  if (ratio < 0.5) return 0.01;
  if (ratio < 0.7) return 0.025;
  return 0.035;
}

尝试将您的目标或销售目标视为蛋糕。您需要知道的是已售出多少蛋糕(ratio = sold/cake)。那是要计算的第一件事。

而且百分比实际上也是一个比率。 "pro-cent" means x/100。所以50%实际上是50/100,实际上是0.5。

因此,我们可以直接将这两个比率进行比较。


我刚刚意识到,您可能还希望应用佣金率。 在这种情况下,您必须将其乘以soldValue

public double calculateCommission(double soldValue,double goal) { 
  double commissionRate = calculateCommissionRate(soldValue,goal);
  return soldValue * commissionRate;
}

最后的评论(超出范围):double可以存储比率,但是由于各种舍入方式,对于货币值(即方法的输入)不是很好错误。您可能要使用BigDecimalInteger,然后将数字乘以100来存储小数。向最终用户显示您的值仅是使用适当的格式化程序即可。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。