if语句的折扣率

时间:2014-03-12 19:17:12

标签: java

我试图将折扣系统应用到我的一个程序中。 我对编程非常陌生,所以我很抱歉初学者的问题!

好的,这是我目前的折扣公式

double discount = total - (total*number*0.025);

基本上,每个包裹(数量)的总费用可享受2.5%的折扣。 我希望这个停止在30%,所以没有折扣可以超过30%。

这就是我试过的

if(discountOne >= totalOne/3) {
      discountOne = totalOne*0.33;
} 

然而它没有用。 任何帮助深表感谢!如果有一个更好的公式,我应该使用随时让我知道。 再次感谢您的帮助!

2 个答案:

答案 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