【发布时间】:2014-10-10 16:36:36
【问题描述】:
我无法正确更新总价。我正在输入 book = 12.49 音乐 cd = 14.99 和巧克力棒 = 0.85。正在发生的事情是 14.99 * .10 正在添加和巧克力棒。它正在擦除 12.49 的第一个值。
public class SalesTax {
public static void main(String[] args)
{
// Input items for shopping cart
HashMap<String, String> cart = new HashMap<String, String>();
HashMap<String, String> shoppingcart = new HashMap<String, String>();
// Create a Scanner
Scanner input = new Scanner(System.in);
// variables
char done;
//boolean goods;
double totalprice = 0.00;
double taxprice;
// Pick items for list.
do
{
System.out.print("Please enter an item.");
String item = input.nextLine();
System.out.print("Please enter the price for "+ item + ": ");
String price = input.nextLine();
double price1 = Double.parseDouble(price);
totalprice += price1;
//System.out.println(String.format("%.2f",totalprice));
String price2 = String.valueOf(price1);
cart.put(item, price2);
//determine if item will have additional tax
if (item.contains("music"))
{
double newprice = Double.parseDouble(price);
taxprice = newprice * .10;
totalprice = (newprice + taxprice);
//System.out.println(String.format("%.2f",totalprice));
String newprice2 = String.valueOf(String.format("%.2f", totalprice));
shoppingcart.put(item,newprice2);
}
else if (item.contains("imported"))
{
double newprice = Double.parseDouble(price);
newprice = newprice * .05;
totalprice += newprice;
//System.out.println(String.format("%.2f",totalprice));
String newprice2 = String.valueOf(String.format("%.2f", newprice));
shoppingcart.put(item, newprice2);
}
else if(item.contains("bottle"))
{
double newprice = Double.parseDouble(price);
newprice = newprice * .10;
totalprice += newprice;
System.out.println(String.format("%.2f",totalprice));
String newprice2 = String.valueOf(String.format("%.2f", newprice));
shoppingcart.put(item, newprice2);
}
else
{
shoppingcart.put(item, price);
}
System.out.print("Would you like to continue to add items? (Type Y) for Yes and (Type N) for No.");
done = input.nextLine().charAt(0);
} while(Character.toUpperCase(done) == 'Y');
System.out.println("Your cart contains the following at items with tax" + shoppingcart); //+ String.format("%.2f", totalprice));
System.out.println(String.format("%.2f",totalprice));
}
}
【问题讨论】:
-
作为建议,在您放置
if (item.contains("something") == true)的每个条件下,您都可以简化它:if (item.contains("something")),因为 contains 函数返回一个布尔值。
标签: java math assignment-operator