【问题标题】:Simple Divison for Calculator not working计算器的简单除法不起作用
【发布时间】:2014-01-02 19:56:49
【问题描述】:

我正在尝试制作一个计算器,可以计算税收、小费和多人之间的分摊,但最后一个功能不起作用,我不知道为什么。我知道这可能是一个简单的修复,但我是 Java 新手,所以我找不到它。注意:这是我的第一个实际 Java 程序,所以请理解我可能明显的错误。

import java.util.Scanner;
import javax.swing.JOptionPane;

public class TaxFinder { 

     static Scanner scan = new Scanner(System.in);
    public static double priceD, taxD, totalTax, total, priceTipped, pricePP;
    public static int peopleI;
    public static String price, tax, people, ifTip, tip, ifSplit;

    public static void main(String args[]){

        ifTip = JOptionPane.showInputDialog("Was your purchase in a restaurant?");

         if (ifTip.equalsIgnoreCase("yes")){ 
             price = JOptionPane.showInputDialog("What was the cost of your bill ($)?");
             priceD = Double.parseDouble(price);

             tax = JOptionPane.showInputDialog("What is your tax rate (decimal)?"); 
             taxD = Double.parseDouble(tax);

             tip = JOptionPane.showInputDialog("Do you want to tip 5, 10, 15, or 20% ?"); 

             if (tip.equals("5")){ 
                 priceTipped = priceD * .05;
             }

             else if (tip.equals("10")){ 
                 priceTipped = priceD * .1;
                 //System.out.println("Your price tipped is " + priceTipped);
             }

             else if (tip.equals("15")){ 
                 priceTipped = priceD * .15;
             }

             else if (tip.equals("20")){ 
                 priceTipped = priceD * .2;
             }

             totalTax = priceD * taxD;
             total = priceD + totalTax + priceTipped;

         } 

         else if (ifTip.equalsIgnoreCase("no")){ 
             price = JOptionPane.showInputDialog("How much did your purchase cost ($)?");
             priceD = Double.parseDouble(price);
             tax = JOptionPane.showInputDialog("What is your tax rate (decimal)?");
             taxD = Double.parseDouble(tax);

         totalTax = priceD * taxD;
        total = priceD + totalTax;
         }

        JOptionPane.showMessageDialog(null, "Your total is: $" + total, "Shopping Calculator", JOptionPane.PLAIN_MESSAGE);

        ifSplit = JOptionPane.showInputDialog("Are you splitting the cost with other people?");

        if (ifSplit.equalsIgnoreCase("yes")){ 
            people = JOptionPane.showInputDialog("How many people including you?");
            peopleI = Integer.parseInt(people);

            pricePP = total / peopleI; 
            JOptionPane.showMessageDialog(null, "The total is $" + total + " per person", "Shopping Calculator", JOptionPane.PLAIN_MESSAGE);

            JOptionPane.showMessageDialog(null, "Have a nice day!", "Shopping Calculator", JOptionPane.PLAIN_MESSAGE);
        } 

        else if (ifSplit.equalsIgnoreCase("no")){ 
            JOptionPane.showMessageDialog(null, "Have a nice day!", "Shopping Calculator", JOptionPane.PLAIN_MESSAGE);
        }
    }
}

【问题讨论】:

  • 在计算价格时尝试让peopleI加倍PP
  • @MadProgrammer totaldouble
  • @ZouZou 我不想投结果,只是划分的一侧...
  • @MadProgrammer 在pricePP = total / peopleI; 中转换peopleI 有什么意义?它已经是double/int,所以它不会执行整数除法。或者我没听懂你想要表达的意思。

标签: java swing joptionpane division shopping


【解决方案1】:

这里只需使用pricePP 而不是total 变量:

JOptionPane.showMessageDialog(null, "The total is $" + total
                + " per person", "Shopping Calculator",
                JOptionPane.PLAIN_MESSAGE);

因为你输出了另一个变量,它没有被分割。

【讨论】:

  • 我明白了。就像我说的,我是一个非常新的程序员,所以我希望错误很明显。不过,感谢您的宝贵时间,这对您有很大帮助
猜你喜欢
  • 1970-01-01
  • 2016-05-22
  • 2020-10-17
  • 1970-01-01
  • 1970-01-01
  • 2018-02-02
  • 2013-08-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多