现有一个表存放优惠减免的阈值和减免的金额比如充值200减免10元充值400减免30元减免的金额按最大接近阈值计算。客户充值一笔钱java通过算法计算最终充值的金额
可以使用以下算法来计算最终充值的金额:
- 遍历优惠减免表,找到最接近客户充值金额的阈值。
- 如果找到了阈值,将减免金额加入最终充值金额中。
- 如果找不到阈值,说明客户充值金额不满足任何优惠减免条件,最终充值金额为客户充值金额。
Java代码实现:
public static double calculateFinalAmount(double rechargeAmount, Map<Double, Double> discountTable) {
double finalAmount = rechargeAmount;
double closestThreshold = Double.MAX_VALUE;
for (double threshold : discountTable.keySet()) {
if (rechargeAmount >= threshold && rechargeAmount - threshold < closestThreshold) {
closestThreshold = rechargeAmount - threshold;
finalAmount = rechargeAmount - discountTable.get(threshold);
}
}
return finalAmount;
}
其中,参数rechargeAmount为客户充值金额,参数discountTable为优惠减免表,是一个Map类型,key为阈值,value为减免金额。函数返回最终充值金额
原文地址: https://www.cveoy.top/t/topic/fJYv 著作权归作者所有。请勿转载和采集!