Java 根据价格计算销售税

Java 根据价格计算销售税,java,Java,我正在尝试执行java任务,场景如下: 对所有消费的商品和服务征收7%的销售税。所有价格标签都必须包含销售税,这也是强制性的。例如,如果一件商品的标价为107美元,那么实际价格为100美元,7美元将计入销售税 编写一个程序,使用循环连续输入含税价格(作为“双倍”);计算实际价格和销售税(双倍);并打印四舍五入到小数点后2位的结果。程序应在响应-1输入时终止;并打印总价、实际总价和销售税总额 但是,当我尝试计算销售税时,没有显示以下内容: 输入·含税·价格·单位·美元(或·-1·至··结束):10

我正在尝试执行java任务,场景如下:

对所有消费的商品和服务征收7%的销售税。所有价格标签都必须包含销售税,这也是强制性的。例如,如果一件商品的标价为107美元,那么实际价格为100美元,7美元将计入销售税

编写一个程序,使用循环连续输入含税价格(作为“双倍”);计算实际价格和销售税(双倍);并打印四舍五入到小数点后2位的结果。程序应在响应-1输入时终止;并打印总价、实际总价和销售税总额

但是,当我尝试计算销售税时,没有显示以下内容:

输入·含税·价格·单位·美元(或·-1·至··结束):107

实际价格为:$100.00

销售税为:7.00美元

我的计算表明:

以美元(或-1结尾)输入含税价格:107

实际价格为99.51美元

销售税为:7.49美元

我不确定我的编码有什么问题

import java.util.Scanner;
public class SalesTax{

  public static void main(String[] args) {



// Declare constants
      final double SALES_TAX_RATE = 0.07;
  final int SENTINEL = -1;        // Terminating value for input

  // Declare variables
  double price, actualPrice, salesTax;  // inputs and results
  double totalPrice = 0.0, totalActualPrice = 0.0, totalSalesTax = 0.0;  // to accumulate


  // Read the first input to "seed" the while loop
  Scanner in = new Scanner(System.in);
  System.out.print("Enter the tax-inclusive price in dollars (or -1 to end): ");
  price =  in.nextDouble();

  while (price != SENTINEL) {
     // Compute the tax

     salesTax = SALES_TAX_RATE * price;
      actualPrice = price - salesTax;


     // Accumulate into the totals
     totalPrice = actualPrice + salesTax;
     totalActualPrice = actualPrice + actualPrice; 
     totalSalesTax = salesTax + salesTax;
     // Print results
     System.out.println("Actual price is $" + String.format("%.2f",actualPrice));
     System.out.println("Sales Tax is: $" + String.format("%.2f",salesTax));


     // Read the next input
     System.out.print("Enter the tax-inclusive price in dollars (or -1 to end): ");
     price =  in.nextDouble();
     // Repeat the loop body, only if the input is not the sentinel value.
     // Take note that you need to repeat these two statements inside/outside the loop!
  }
  // print totals
  System.out.println("Total price is: " + String.format("%.2f",totalPrice));
  System.out.println("Total Actual Price is: " + String.format("%.2f",totalActualPrice));
  System.out.println("Total sales tax is: " + String.format("%.2f",totalSalesTax));




  }
}

任何帮助都将不胜感激。谢谢大家!

问题在于您的销售税计算,请尝试:

final double SALES_TAX_RATE = 7;

salesTax = price / (100 + SALES_TAX_RATE) * SALES_TAX_RATE;

这两行你错了:

salesTax = SALES_TAX_RATE * price;
actualPrice = price - salesTax;
如果您是根据已售出的价格计算销售额,请尝试以下操作:

您的
价格
实际价格
实际价格税
的组成部分:

price = actualPrice + SALES_TAX_RATE * actualPrice
salesTax = SALES_TAX_RATE * actualPrice;
因此,你可以从数学上完成以下几段:

price = actualPrice * (1 + SALES_TAX_RATE)

actualPrice = price / (1 + SALES_TAX_RATE)
因此,请尝试更改
实际价格的分配,然后计算您的
实际价格的税费

price = actualPrice + SALES_TAX_RATE * actualPrice
salesTax = SALES_TAX_RATE * actualPrice;

“107”是一个例子,你应该解释如何解决他的问题一般;然而,在他的例子中,“价格/107”等于1,它之所以有效是因为我们处于一个特殊的情况:你的答案不正确或不完整——价格是实际价格的107%。价格除以107得到价格的1%,乘以7得到7%的销售税。虽然我应该使用变量来计算税率,而不是将其限制在7%。