Omzetten Fahrenheit Celcius

  • Onderwerp starter Onderwerp starter BenSw
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

BenSw

Gebruiker
Lid geworden
1 mei 2012
Berichten
16
Hey

Ik ben oefeningen aan het maken voor herexamens, maar vind bij deze mijn fout niet. Als ik het programma run en ik voer een temperatuur in Fahrenheit in, zou deze omgezet moeten worden naar Celcius, maar ik krijg bij elke invoer 0 als resultaat. Kan iemand me helpen de fout te vinden? (code is enkel domeinklasse).

Code:
package domein;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class ExceptionJFrame extends JFrame implements ActionListener {

	// GUI-componenten
	private JTextField txtInvoer;
	private JLabel lblResultaat, lblTekst;

	public ExceptionJFrame() {
		super();
		initGUI();
	}

	private void initGUI() {
		Container c = getContentPane();
		c.setLayout(new FlowLayout());

		lblTekst = new JLabel("Geef temperatuur in Fahrenheit: ");
		lblResultaat = new JLabel("");
		txtInvoer = new JTextField(10);
		txtInvoer.addActionListener(this);// enter
		c.add(lblTekst);
		c.add(txtInvoer);
		c.add(lblResultaat);
		setTitle("Temperatuur convertor");
		setSize(400, 200);
		setVisible(true);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == txtInvoer)
		{
			try{
				String input = txtInvoer.getText();
				int getal = Integer.parseInt(input);
				if (getal < 14 || getal > 104)
				{
					throw new IllegalArgumentException();
				}
				lblResultaat.setText("Temperatuur in celcius: "+omzettenNaarCelcius(getal));
			}
			catch (NumberFormatException exception){
				JOptionPane.showMessageDialog(null, "De invoer moet uit cijfers bestaan. Herbegin", "Error", JOptionPane.ERROR_MESSAGE);
			}
			catch (IllegalArgumentException IO){
				JOptionPane.showMessageDialog(null, "De invoer moet tussen 14 en 104 liggen. Herbegin", "Error", JOptionPane.ERROR_MESSAGE);
			}
			finally{
				txtInvoer.setText("");
				txtInvoer.requestFocus();
			}
		}

	}
	
	public int omzettenNaarCelcius(int f){
		
		return (int)  (5/9) * (f - 32);
	}

}
 
Laatst bewerkt:
Hey Hanna, bedankt voor je antwoord, maar wat jij doorstuurde was Javascript en ik bedoel Java
 
fahrenheit to celsius java code, met deze zoekterm is genoeg te vinden met Google.
 
Het probleem zit in de regel
Code:
return (int)  (5/9) * (f - 32);
5 en 9 zijn beide integers. Als je deze door elkaar deelt krijg je een integer als antwoord en dus 0. Ook moet je haakjes om de berekening zetten zodat de uitkomst wordt gecast naar een int en niet alleen de uitkomst van (5/9) (wat al 0 oplevert). Zo werkt het wel:
Code:
return (int)  ((5.0/9.0) * (f - 32));
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan