wat doe ik fout?

Status
Niet open voor verdere reacties.

NielsBood

Gebruiker
Lid geworden
30 apr 2008
Berichten
9
goedemiddag,
ik probeer in Java een programma te schrijven, die Mile's omrekend in Kilometers.
ik heb de hele code al, en het compilen lukt me ook al :thumb::cool:
maar ik heb 1 fout in de code, naja niet echt een fout, alleen ik weet echt niet hoe ik dit in java neer moet zetten, kijk zelf maar de code staat hieronder

MVG
Niels Bood
Code:
import javax.swing.*;

		public class Miles {

	public static void main(String[] arg) {
	String Miles;
	String message;
	Miles = JOptionPane.showInputDialog("How much Miles?");   
	Uitkomst = 1.609 x Miles;        [COLOR="Red"] <-- Hier zit de Error [/COLOR]            
	Message = "Aantal Kilometers: " + Uitkomst;        
	JOptionPane.showMessageDialog(null   , message);
	System.exit(0);
	}

	}
 
Laatst bewerkt door een moderator:
Vermenigvuldigen doe je met het *, dus
Code:
Uitkomst = 1.609 * Miles;
 
ik heb het geprobeerd, alleen ik krijg de volgende error,

c:\Java\test>javac Miles.java
Miles.java:17: operator * cannot be applied to java.lang.string,double
Uitkomst = Miles * 1.609
^


ik snap er niks meer van volgens mij is de code goed, code staat hieronder:

Code:
	import javax.swing.*;

	public class Miles {

	public static void main(String[] arg) {
		String Miles;
		String message;
		String Uitkomst;
		Miles = JOptionPane.showInputDialog("How much Miles?");
		Uitkomst = Miles * 1.609 ;
		message = "Aantal Kilometers:" + Uitkomst;
		JOptionPane.showMessageDialog(null , message);
		System.exit(0);
	}

}
 
Laatst bewerkt door een moderator:
Je kan niet met Strings rekenen.
Dezen zullen eerst omgezet moeten worden naar een Integer of een Double
 
c:\Java\test>javac Miles.java
Miles.java:17: operator * cannot be applied to java.lang.string,double
Uitkomst = Miles * 1.609

Je probeert een numerieke operatie (vermenigvuldiging) uit te voeren op een double (een getal) en een string (een reeks letters/cijfers). Je moet die string omzetten naar een double (of naar een int als de input alleen gehele getallen kan bevatten), dus:
Code:
Uitkomst = Double.parseDouble(Miles) * 1.609 ;
of
Code:
Uitkomst = Integer.parseInt(Miles) * 1.609 ;

Als je dit compileert zal je nog een foutmelding krijgen:
Miles.java:10: incompatible types
found : double
required: java.lang.String
Uitkomst = Double.parseDouble(Miles) * 1.609 ;

Dit komt omdat je een double waarde probeert toe te kennen aan een string. Het makkelijkste is het om
Code:
String Uitkomst;
te vervangen door
Code:
double Uitkomst;

Of je laat "String Uitkomst" staan en je vervangt
Code:
Uitkomst = Double.parseDouble(Miles) * 1.609 ;
door
Code:
Uitkomst = String.valueOf(Double.parseDouble(Miles) * 1.609) ;
 
bedankt nu doet hij het :D
maar ik ben mn code alweer aan het uitbouwen, maar ik heb nog 1 error,
nu snap ik het wel met die strings en double's, alleen deze error snap ik niet :(

dit is de code, en daaronder de error.

Code:
import javax.swing.*;

public class Opdracht {
	public static void main(String[] arg) {

	String Miles;
	String Uitkomst;
	String Gallon;
	String Antwoord;

	Miles = JOptionPane.showInputDialog("How much Miles?");
	Uitkomst = String.valueOf (Double.parseDouble(Miles) * 1.609) ;
	message = "Aantal Kilometers:" + Uitkomst;
        JOptionPane.showMessageDialog(null , message);

       Gallon = JOptionPane.showInputDialog("How much Gallons?");
       Antwoord = String.valueOf  (Double.parseDouble(Gallon) * 3.785) ;
       message = "Aantal Liters:" + Antwoord ;
       JOptionPane.showMessageDialog(null , message);
       System.exit(0);
       }

}
hier de error:
c:\java\test>javac Opdracht.java
Opdracht.java:65: 'class'or 'interface'expected
1 mile = 1.609 km and 1 gallon = 3.785 litres.
^
1 error

BVD
Niels Bood
 
Laatst bewerkt door een moderator:
Is dat de hele code? De foutmelding verwijst namelijk naar regel 65, terwijl de code die je geplaatst heb geen 65 regels bevat. Ook heb ik die foutmelding niet gekregen toen ik het uitprobeerde. De enige foutmelding die ik kreeg ging over message (die wordt nergens gedeclareerd). Na het toevoegen van "String message;" doet hij het hier.
 
@NielsBood: In het vervolg graag
Code:
 en
tags gebruiken bij het posten van code.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan