Karavi Karavi - 7 months ago 54
Java Question

Multiplying text field with combo box Netbeans

I am fairly new to java and i was wondering how i might multiply a number a user inputs in a text box to a number they select in a combo box.
so far i have this:

int Cost = Integer.parseInt(txtCost.getText());
int TipCost;

int Tip = Integer.parseInt((String)cboTip.getSelectedItem());

TipCost = Cost*(Tip/100);
TipCost = Math.round(TipCost);
TipCost = TipCost/100;


What i get right now is just 0.

Answer

Your TipCost needs to be of type double in order to produce numbers that have a decimal point.

Also, your calculations are suffering from integer division, which disregards remainders. Calculations that divide an integer by 100 had better be with an integer greater than 100, or else the result will always be 0.

You also have some logic errors. Here is how you should fix your code:

int Cost = Integer.parseInt(txtCost.getText());
int Tip = Integer.parseInt(cboTip.getSelectedItem().toString()); 

double TipCost = Cost*Tip/100.0; // get the tip cost, 100.0 avoids integer division
TipCost = Math.round(TipCost*100)/100.0; // round to 2 decimal places
Comments