由于某种原因,我无法获得4张票的正确代码,相当于100张(没有oap / child折扣和5张票价折扣,4晚餐的费用使总票数达到180,然后乘以1.21等于217.9。如果我放了一个System.out.println(vatTotalNoAgeLess5);在第二个if块之外它会打印217.8但是如果我没有它给我4个oap / child ticket + 4个晚餐* 1.21的费用是195.65。
public static void main(String[] args) {
//data dictionary
double standT, terraceT, grossTick, handlingFee, ticketDiscount, flatFee, totalCost, agetick, over5tick,
vatTotal, totaltick, dinnerPrice, dinnerTotal, vatTotalForAge, vatTotalNoAgeLess5;
Scanner in = new Scanner(System.in);
//gathering basic inputs from user
System.out.println("Input your name ");
String name = in.next();
System.out.println("Input your mobile number ");
String mobile = in.next();
System.out.println("How many stand tickets do you want? ");
int standTick = in.nextInt();
System.out.println("How many terrace tickets do you want? ");
int terraceTick = in.nextInt();
System.out.println("OAP/Student tickets? y/n");
String ageDiscount = in.next();
//basic fees as variables
standT = 25 * standTick;
terraceT = 20 * terraceTick;
handlingFee = 7.50;
dinnerPrice = 20;
//defining the total cost variables
grossTick = terraceT + standT;
if(ageDiscount.equals("Y") || ageDiscount.equals("y"))
{
//System.out.println(grossTick);
agetick = grossTick * 0.85;
System.out.println("Before vat the total is " + agetick);
}
else if (ageDiscount.equals("N") || ageDiscount.equals("n"))
{
System.out.println("Before vat the total is " + grossTick);
}
else if(standTick + terraceTick >= 5)
{
over5tick = grossTick * 0.82;
System.out.println("Before vat the total is " + over5tick);
}
else if (standTick + terraceTick < 5 )
{
System.out.println("Before vat the total is " + grossTick);
}
else if (ageDiscount.equals("Yes") || ageDiscount.equals("yes") && standTick + terraceTick >= 5)
{
over5tick = grossTick * 0.82;
System.out.println("Before vat the total is " + over5tick);
}
System.out.println("Will you be having dinner? y/n ");
String havingDinner = in.next();
if(havingDinner.equals("Y") || havingDinner.equals("y") || ageDiscount.equals("Y") || ageDiscount.equals("y"))
{
agetick = (grossTick * 0.85);
dinnerTotal = dinnerPrice * (standTick + terraceTick);
vatTotalForAge = ((dinnerTotal + agetick) * 1.21);
System.out.println(vatTotalForAge);
}
else if (havingDinner.equals("Y") || havingDinner.equals("y")||ageDiscount.equals("N") || ageDiscount.equals("n"))
{
dinnerTotal = dinnerPrice * (standTick + terraceTick);
vatTotalNoAgeLess5 = ((dinnerTotal + grossTick) * 1.21);
System.out.println(vatTotalNoAgeLess5);
}
/*
if(havingDinner.equals("Y") || havingDinner.equals("y")|| ageDiscount.equals("Y") || ageDiscount.equals("y"))
{
agetick = (grossTick * 0.85);
dinnerTotal = dinnerPrice * (standTick + terraceTick);
vatTotalForAge = ((dinnerTotal + agetick) * 1.21);
System.out.println(vatTotalForAge);
}
else if(havingDinner.equals("Y") || havingDinner.equals("y") || ageDiscount.equals("N") || ageDiscount.equals("n"))
{
dinnerTotal = dinnerPrice * (standTick + terraceTick);
vatTotalNoAgeLess5 = ((dinnerTotal + grossTick) * 1.21);
System.out.println("is");
}
dinnerTotal = dinnerPrice * (standTick + terraceTick);
vatTotalNoAgeLess5 = ((dinnerTotal + grossTick) * 1.21);
System.out.println(vatTotalNoAgeLess5);
/*
if( dinner > 0 || ageDiscount.equals("Yes") || ageDiscount.equals("yes"))
{
System.out.println("Total of dinner and vat is " +(( agetick + dinner)*1.21));
}
else if (dinner > 0||ageDiscount.equals("No") || ageDiscount.equals("no"))
{
System.out.println("Total of dinner and vat is " + ((grossTick + dinner)*1.21));
}
else if(dinner > 0||standTick + terraceTick >= 5)
{
System.out.println("Total of dinner and vat is " + (over5tick*1.21 + dinner));
}
else if (dinner > 0 ||standTick + terraceTick < 5 )
{
System.out.println("Total of dinner and vat is " + ((grossTick*1.21) + dinner));
}
else if (dinner > 0||ageDiscount.equals("Yes") || ageDiscount.equals("yes") && standTick + terraceTick >= 5)
{
System.out.println("Total of dinner and vat is " + (over5tick*1.21 + dinner));
}
else if (dinner < 1 || ageDiscount.equals("No") || ageDiscount.equals("no"))
{
System.out.println("Total including and vat is " + grossTick*1.21);
}
else if(dinner < 1 ||standTick + terraceTick >= 5)
{
System.out.println("Total including and vat is " + over5tick*1.21);
}
else if (dinner < 1 ||standTick + terraceTick < 5 )
{
System.out.println("Total including and vat is " + grossTick*1.21);
}
else if (dinner < 1 || ageDiscount.equals("Yes") || ageDiscount.equals("yes") && standTick + terraceTick >= 5)
{
System.out.println("Total including and vat is " + over5tick*1.21 );
}
*/
}
}
答案 0 :(得分:1)
BigDecimal 使用示例
vatTotalNoAgeLess5 = BigDecimal.valueOf(dinnerTotal).add(BigDecimal.valueOf(grossTick)).multiply(BigDecimal.valueOf(1.21)).doubleValue();
示例 if statement
if ((havingDinner.equals("Y") || havingDinner.equals("y")) && (ageDiscount.equals("Y") || ageDiscount.equals("y"))) {
agetick = (grossTick * 0.85);
dinnerTotal = dinnerPrice * (standTick + terraceTick);
vatTotalForAge = ((dinnerTotal + agetick) * 1.21);
System.out.println(vatTotalForAge);
} else if ((havingDinner.equals("Y") || havingDinner.equals("y")) && (ageDiscount.equals("N") || ageDiscount.equals("n"))) {
dinnerTotal = dinnerPrice * (standTick + terraceTick);
vatTotalNoAgeLess5 = ((dinnerTotal + grossTick) * 1.21);
System.out.println(vatTotalNoAgeLess5);
}