Java Stringeingaben und Zinssatz

Nilssonvenjan

Ensign
Registriert
Feb. 2007
Beiträge
205
Hallo

Ich will ein Programmschreiben das nach Eingabe von Startkapital, Laufzeit und Zinssatz den Endwert nach der Laufzeit ausgibt.
Code:
import javax.swing.JOptionPane;


public class KapitalZins {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// 1.Variablen , 2 -4 Eingaben, 5 konvertieren 6 Rechnen
		
//Variablen 		
String kapitalS , zinssatzS , laufzeitS, ausgabe;
double kapital,  zinssatz , ergebnis ;
int laufzeit ;


//Eingaben
kapitalS= JOptionPane.showInputDialog("Geben Sie ihr Kapital ein");
zinssatzS=JOptionPane.showInputDialog("Geben Sie den Zinssatz ein");
laufzeitS=JOptionPane.showInputDialog("Geben Sie die Laufzeit ein");

// Kontrolle mit Ausgabe

//JOptionPane.showMessageDialog( null, kapitalS,"Ergebnis", JOptionPane.PLAIN_MESSAGE);
//JOptionPane.showMessageDialog( null, zinssatzS,"Ergebnis", JOptionPane.PLAIN_MESSAGE);
//JOptionPane.showMessageDialog( null, laufzeitS,"Ergebnis", JOptionPane.PLAIN_MESSAGE);

// ausgabe ist richtig

//Parsen
kapital= Double.parseDouble("kapitalS");
zinssatz =Double.parseDouble("zinssatzS");
laufzeit= Integer.parseInt("laufzeitS");

//Kontrolle mit Ausgabe

JOptionPane.showMessageDialog( null, kapital,"Ergebnis", JOptionPane.PLAIN_MESSAGE);

//rechnen Kn=K0 * ( 1+ Zinssatz/100)^n

ergebnis = Math.pow((kapital*(1+zinssatz/100)),laufzeit );


// Ausgabe
ausgabe = (int)ergebnis + "Euro";
JOptionPane.showMessageDialog( null, ausgabe,"Ergebnis", JOptionPane.PLAIN_MESSAGE);
	}

}

Die Eingaben gehen und ich kann die Eingaben auch ausgeben aber ab den Parsen gehen die Ausgaben nicht mehr.
 
Da fällt mir folgendes Zitat ein "Rechne NIE mit DOUBLE, denn das gibt nur TROUBLE"! Versuch mal die Klasse "BigDecimal" zu nutzen!
 
Code:
kapital= Double.parseDouble("kapitalS");
Du versucht hier aus dem String (nicht der variable!) "kaptialS" eine Zahl zu machen. Das geht natürlich schief.

Mit was compiliert du den Code? Per Hand mit javac oder Eclipse/Netbeans? Die sollten dir auf jeden Fall einen entsprechenden Fehler in der Konsole ausgeben.
 
Jo, da dürfen keine Anführungszeichen um das "kapitalS" sein... Bei den anderen natürlich auch.

Außerdem solltest du die Ausgabe evtl eher zu double casten statt zu int.
 
Hallo,

mir fällt Folgendes auf:

Code:
//Parsen
kapital= Double.parseDouble("kapitalS");
zinssatz =Double.parseDouble("zinssatzS");
laufzeit= Integer.parseInt("laufzeitS");

Du übergibst der Methode Double.parseDouble den String / die Zeichenkette "kapitalS" etc. Da du aber wohl die Variablen kapitalS, zinssatzS und laufzeitS übergeben möchtest, musst du dort die Variablennamen ohne Anführungszeichen hinschreiben, also:

Code:
kapital= Double.parseDouble(kapitalS);
zinssatz =Double.parseDouble(zinssatzS);
laufzeit= Integer.parseInt(laufzeitS);

Edit: Da waren wohl ein paar Leute schneller. ;-)
 
geiler Spruch :D

Für die Rechnung math.pow brauche ich aber double Werte.

Aber der Fehler kommt schon beim parsen , dort kann ich den geparsten Wert nicht ausgeben.

Danke für die Antworten , ich teste es mal.

Ich programmiere mit eclipse.
Ergänzung ()

Ja ohne " " gehts. Die kleinen Sachen kosten am meisten Zeit.

Danke an alle für die Hilfe.

Ja ergebnis mit double machts besser. Jetzt fällt mri aber auf das die Formel nur mit laufzeit=1 richtig funktioniert.

Code:
import javax.swing.JOptionPane;


public class KapitalZins {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// 1.Variablen , 2 -4 Eingaben, 5 konvertieren 6 Rechnen
		
//Variablen 		
String kapitalS , zinssatzS , laufzeitS, ausgabe;
double kapital,  zinssatz , ergebnis ;
int laufzeit ;


//Eingaben
kapitalS= JOptionPane.showInputDialog("Geben Sie ihr Kapital ein");
zinssatzS=JOptionPane.showInputDialog("Geben Sie den Zinssatz ein");
laufzeitS=JOptionPane.showInputDialog("Geben Sie die Laufzeit ein");



//Parsen
kapital= Double.parseDouble(kapitalS);
zinssatz =Double.parseDouble(zinssatzS);
laufzeit= Integer.parseInt(laufzeitS);



//rechnen Kn=K0 * ( 1+ Zinssatz/100)^n

ergebnis = Math.pow((kapital*(1+zinssatz/100)),laufzeit );


// Ausgabe
ausgabe = (double)ergebnis + "Euro";
JOptionPane.showMessageDialog( null, ausgabe,"Ergebnis", JOptionPane.PLAIN_MESSAGE);
	}

}

Edit: ergebnis = Math.pow((1+zinssatz/100),laufzeit )*kapital; so gehts , nochmal danke an alle
 
Zuletzt bearbeitet:
Dann solltest du auch lernen die Vorteile eine IDE zu nutzen. Z.B. solltest du (u.a.) die Warnung "The value of the local variable kapitalS is not used" sehen und der Link in der Fehlermeldung in der Konsole bringt sich direkt an die Stelle, an der es kracht. Und dann ist da noch der Debugger.
 
frühere Fehlermeldung

Code:
Exception in thread "main" java.lang.NumberFormatException: For input string: "kapitalS"
	at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1241)
	at java.lang.Double.parseDouble(Double.java:540)
	at KapitalZins_6_4.main(KapitalZins_6_4.java:24)

ja da hast recht
 
Zurück
Oben