现在有两种打分方案:
以销量 95 吨得 95 分为基础,每多 1 吨加 1 分,不足 1 吨同比例增加。
以销量 100 吨得分 100 分为基础,每少 1 吨减 1 分,不足 1 吨同比例减少。
晃一看,这不一样吗?错了,还有一点关键在于四舍五入。
我们采用最靠近偶数的 Math.Round 进行四舍五入,即 1.5 四舍五入为 2,2.5 四舍五入也为 2。
一、假如对销量差值进行四舍五入(以 0 位小数为例)
95.5 吨,第一种方案,多 0.5 吨,四舍五入为 0 吨,加 0 分,得 95 分。
95.5 吨,第二种方案,少 4.5 吨,四舍五入为 4 吨,减 4 分,得 96 分。
二、假如对销量进行四舍五入(以 0 位小数为例)
95.5 吨,第一种方案,四舍五入为 96 吨,多 1 吨,加 1 分,得 96 分。
95.5 吨,第二种方案,四舍五入为 96 吨,少 4 吨,减 4 分,得 96 分。
三、假如对得分差值进行四舍五入(以 0 位小数为例)
95.5 吨,第一种方案,多 0.5 吨,加 0.5 分,四舍五入加 0 分,得 95 分。
95.5 吨,第二种方案,少 4.5 吨,减 4.5 分,四舍五入减 4 分,得 96 分。
四、假如对得分进行四舍五入(以 0 位小数为例)
95.5 吨,第一种方案,多 0.5 吨,加 0.5 分,得 95.5 分,四舍五入得 95 分。
95.5 吨,第二种方案,少 4.5 吨,减 4.5 分,得 95.5 分,四舍五入得 95 分。
四种算法有四种结果
有人说“一”和“三”不是一样的么?不,这是因为我们的销量、得分取值恰好是 1:1,造成了一样的,但实际中可能不是 1:1,所以结果不一定一样,所以还是有四种结果。
哪种算法有道理?
其实没有哪种算法有道理,这都要看客户,还记得前面的需求吗?虽然从数据上来说很合理,但是从需求上来说不一定合理,所以最终还是看用户。
但是作为软件开发方,我们建议还是第四种,因为:
1、它和“二”一样,把四舍五入放在了最后,而不是中间过程,通常是这样要合理些。
2、与“二”相比,似乎它更贴近于需求描述。