java 如何计算销售佣金

How to calculate sales commission in java

我想知道我是如何计算销售佣金的,我需要做这个方法,但我不明白。有与目标相关的销售价值,起初低于 50%,卖家仅赚取 1%,而与目标相关的销售价值为 50 至 70%,卖家赚取 2.5%。 if 的空格 space 在哪里,我不知道该放什么,因为我不知道如何将小于一半的值甚至一个值放到另一个,在这种情况下是 50% 到 70%,e 从 71% 到 100% 你得到 3.5%。 我认为 Sales Goal 属性需要在方法中,因为程序必须了解销售价值低于目标的一半。

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;
    }

在检查较低的阈值之前,您需要检查是否通过了较高的阈值。我还删除了变量,因为您可以 return 知道需要计算什么的那一刻的值。

有助于制作一些图表

什么进什么出决定了你的方法签名。

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

然后创建某种流程图

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.

所以,我们可以直接比较这两个比率。


我刚刚意识到您可能也想申请 commission-rate。 在这种情况下,您必须将它与 soldValue.

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

最后的评论(超出范围):double 可以很好地存储比率,但对于货币价值(即您的方法的输入)不是很好,因为各种舍入错误。您可能想使用 BigDecimal 或者 Integer 并将您的数字乘以 100 以存储小数。向最终用户展示您的价值只是使用像样的格式化程序的问题。