好的,这是我目前的折扣公式
double discount = total - (total*number*0.025);
基本上,每个包裹(数量)的总费用可享受2.5%的折扣。 我希望这个停止在30%,所以没有折扣可以超过30%。
这就是我试过的
if(discountOne >= totalOne/3) {
discountOne = totalOne*0.33;
}
然而它没有用。 任何帮助深表感谢!如果有一个更好的公式,我应该使用随时让我知道。 再次感谢您的帮助!
答案 0 :(得分:0)
计算可能的最大折扣 即maxDiscount - >占总数的30%
然后通过检查折扣< = maxDiscount
来比较您的折扣答案 1 :(得分:0)
您对discount
的计算错误。我们假设你有4件商品,这样可以获得2.5 * 4%的折扣或10%的折扣。我们说总费用是200美元。那么折扣是200美元的10%,即200美元* 0.1,即20美元。 不 200美元 - 20美元,即180美元。
因此,您需要使用此公式计算它。
double discount = total * number * 0.025;
您可以通过事先计算百分比来让自己变得更容易......
double percentDiscount = number * 0.025;
double discount = total * percentDiscount;
现在,避免舍入错误和其他逻辑问题变得更加简单,只需单独检查percentDiscount
。
double percentDiscount = number * 0.025;
if (percentDiscount > 0.3) percentDiscount = 0.3;
double discount = total * percentDiscount;
正如塞尔丘克指出的那样,你可以通过检查if (number > 12)
来预先识别你的算术,因为30%/ 2.5%是12。
double percentDiscount = ((number > 12) ? 12 : number) * 0.025;
double discount = total * percentDiscount;
您也可以使用Math.min
代替我使用的这些条件和三元表达式。
琐碎的是,折扣后的价格仅为total - discount
。