Archief - [PROG]JAVA Beginnersprobleempje

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

TiZon

Legacy Member
Hey

Ik ben sinds 2 weken bezig met Java en ik ben een beetje oefeningen aan het maken.

Eerst even de code:

AutoTest2.java
Code:
import java.util.Scanner;

public class AutoTest2{

	public static void main(String args[]) {
	
	 	Scanner input = new Scanner(System.in);
	 	
	 	double verbruik;
	 	double prijs;
	 	double afstand;
	 	double kost;
	 	
	 	System.out.printf("%s", "Geef de afstand op: ");
	 	afstand = input.nextDouble();
	 	
	 	System.out.printf("%s", "Geef het verbruik op: ");
	 	verbruik = input.nextDouble();
	 	
	 	System.out.printf("%s", "Geef de brandstofprijs op: ");
		prijs = input.nextDouble();
		
		kost = (verbruik / 100) * (afstand * prijs);
		
		System.out.printf("%s%d","De totale kost bedraagt: ",kost);

	 }
}

Compiler geeft geen fouten, maar als ik AutoTest2 wil doen draaien in mijn terminal, krijg ik dit terug:
Code:
Mac-Bart-De-Vos:~/Desktop/Java/Code/H3/Oef 1 bartdevos$ javac *
Mac-Bart-De-Vos:~/Desktop/Java/Code/H3/Oef 1 bartdevos$ java AutoTest2
Geef de afstand op: 4
Geef het verbruik op: 10
Geef de brandstofprijs op: 5
De totale kost bedraagt: Exception in thread "main" java.util.IllegalFormatConversionException: d != java.lang.Double
        at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:3978)
        at java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2705)
        at java.util.Formatter$FormatSpecifier.print(Formatter.java:2658)
        at java.util.Formatter.format(Formatter.java:2430)
        at java.io.PrintStream.format(PrintStream.java:899)
        at java.io.PrintStream.printf(PrintStream.java:800)
        at AutoTest2.main(AutoTest2.java:25)
Mac-Bart-De-Vos:~/Desktop/Java/Code/H3/Oef 1 bartdevos$

Lijne 25 is
Code:
System.out.printf("%s%d","De totale kost bedraagt: ",kost);

Waarschijnlijk gebruik ik die 'printf' fout, maar ik heb geen idee hoe het anders moet.

Hartelijk bedankt!
Bart

CyberOps

Legacy Member
probeer es
Code:
System.out.println("De totale kost bedraagt: " + String.valueOf(kost));
ofzo iets

Tyfius

Legacy Member
%d is geen double, maar een integer. Om die kost af te drukken moet je %f gebruiken.

daigon

Legacy Member
System.out.println("De totale kost bedraagt: " + kost);

ik gebruik de printf functie nooit maar zo kan je dat ook doen.

Het probleem zit in het feit dat je een deling maakt hierdoor krijg je waarde na de comma. Hier kan je een Float voor gebruiken.

System.out.printf("%s%f","De totale kost bedraagt: ",kost);

Lost het op ;)

TiZon

Legacy Member
ok, dat werkt inderdaad :D

nu krijg ik wel een resem nullen erachteraan, dus hoe geef ik op tot hoeveel ggetallen hij na de komma mag gaan? :D

Thx!
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan