【问题标题】:How to calculate sales commission in java如何在java中计算销售佣金
【发布时间】:2020-10-25 07:39:49
【问题描述】:

我想知道如何计算销售佣金,我需要执行该方法,但我没有得到它。有与目标相关的销售价值,起初它会低于 50%,卖方仅赚取 1%,而与目标相关的销售价值为 50 至 70%,卖方赚取 2.5%。 if 的空格在哪里,我不知道该放什么,因为我不知道如何将小于一半的值甚至一个值放在另一个值之前,在这种情况下是 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;
    }

}

【问题讨论】:

    标签: java methods calc


    【解决方案1】:

    有助于制作一些图表

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

    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。

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


    我刚刚意识到您可能还想应用您的佣金率。 在这种情况下,您必须将它与soldValue 相乘。

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

    最后的评论(超出范围):double 可以存储比率,但由于各种舍入错误,对于货币价值(即您的方法的输入)来说并不是那么好。您可能想使用BigDecimalInteger 并将您的数字乘以100 以存储小数。向最终用户展示你的价值观只是使用一个像样的格式化程序的问题。

    【讨论】:

    • 我没看懂你的划分,说清楚了,我需要的是下面这个,让我们想象一下运行程序: 输入你的目标:1000 输入售价:499 看到这个,卖家做了不到他目标的一半,也就是说,他会在 499 上赚 1%,我如何让程序明白销售价值不到一半?
    • 看到你的代码,我想它会运行如下:比率 = 499/1000,所以结果为 0.499,到目前为止,它会小于 0.5,紧接着返回值为 0.01,必须显示他从这次销售中获利的金额,而不仅仅是显示 0.01
    • @felipi 确实,跟进您的评论。因此,0.01 意味着他的佣金率为 1%。并且 499 的 1% 将意味着他得到 4.99 美元。所以,这就是我回答的最后一部分。这就是为什么我最终添加了第二个函数,它将佣金率与已售价值相乘。 (1% * 499usd = 4.99usd)。
    【解决方案2】:

    也许这就是你所追求的:

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

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

    【讨论】:

    • 这种情况下不到50%,但是销售目标的问题呢?当我输入任何销售目标,而销售价值低于目标时,程序将如何理解?
    • 您需要添加一个构造函数来初始化您给出的示例代码中的类变量的状态
    • 为了更好地理解我需要做的是,让我们想象一下运行程序:输入卖家的目标:1000。输入卖家的销售价值:499 我如何让程序理解该价值销售量不到目标的一半,它将赚取 1%,因此依次与我报告的其他值,从 50% 到 70% 利润 2.5 ....
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-09
    • 1970-01-01
    相关资源
    最近更新 更多