没有从Jframe获得所需的输出

时间:2018-04-16 14:59:26

标签: java jframe

我是Java编程GUI的新手。我的代码很简单,只需要做一些基本的算术,但由于某种原因,它不起作用。我不知道我正在使用String.valueOf()

我的代码:

    String restaurantName;
    double subTotal = 0;
    int tipPercentage = 0;
    double totalBill = 0; 
    double tipInDollars = 0;

    restaurantName = txtRestaurantName.getText();
    subTotal = Double.parseDouble(txtSubtotal.getText());
    tipPercentage = Integer.parseInt(txtTipAmt.getText());  
    tipInDollars = ((tipPercentage / 100) * subTotal);
    totalBill = (tipInDollars + subTotal);

    lblDisplayTip.setText(String.valueOf(tipPercentage) + "%");
    lblDisplayTotalBill.setText(String.valueOf(totalBill));

如果用户输入50表示小计,10表示小费百分比,我希望tipInDollars等于5,totalBill等于55。 然而输出是: enter image description here

1 个答案:

答案 0 :(得分:0)

您的问题不在于您的显示,而在于您的计算,或者更确切地说,是用于计算的变量。您可以将tipPercentage设为double,也可以将此行中的100分:tipInDollars = ((tipPercentage / 100) * subTotal);设为100.0。两种解决方案都应该解决您的问题。

问题产生于将整数(tipPercentage)除以另一个整数(100)。执行此操作时,Java将向下舍入并始终将结果设为0。