Fehler bei Double.parseDouble

ukyo184

Mitglied
Hallo,

ich bin absoluter Java-Neuling und habe ein Problem beim Konvertieren von einem String, der mittels Eingabefenster eingegebn wird, in ein Double. Im Internet und in diesem Forum habe ich dazu den Befehl Double.parseDouble gefunden aber leider erhalte ich beim kompilieren eine Fehlermeldung. Der betroffene Code lautet:
Code:
    //Bibliotheksdateien einbinden
    import java.io.*;	
    import java.lang.*;
    
    
    public class Kalkulationsschema
    {
    	public static void main(String args[])
    	{
    		
    		// Anlegen eines Eingabefeldes
    		String eingabe;
    		InputStreamReader in = new InputStreamReader(System.in);
    		BufferedReader puffer=new BufferedReader(in);
    		System.out.print("\nEinkaufspreis: ");
    		
    		// Beginn try Einkaufspreis
    		try
    			{
 			eingabe = puffer.readLine();		
    			}
    		// Ende try Einkaufspreis
    		
    		// Beginn catch 
    		catch (IOException e)
    			{
    			e.printStackTrace();
    			}
    		// Ende catch
    		
    		// Konvertierung des Strings in double
    		double ek = Double.parseDouble(eingabe);
    ....

Beim Kompilieren erscheint dann folgende Fehlermeldung:

D:\WES\IM\Java\Kalkulationsschema.java:40: variable eingabe might not have been initialized

double ek = Double.parseDouble(eingabe);

Habe keinen Plan mehr an was das liegen könnte. Ich bin für jede Hilfe dankbar.

Gruß Ukyo
 
btw: Bei parseDouble() muss dann auch noch eine NumberFormatException abgefangen werden ..

Gruß Stefan
 
Hallo!

Die NumberFormatException "muss" nicht explizit gefangen werden, da es sich um eine RuntimeException (Unchecked) handelt.

Gruß Tom
 
Thomas Darimont hat gesagt.:
Hallo!

Ersetz doch einfach mal
String eingabe;
durch
String eingabe = null;

Gruß Tom

Vielen Dank für die schnelle Hilfe. Genau das war es.

Heißt das dann dass beim Kompilieren keine manuellen Eingaben während des Programmablaufs berücksichtigt werden, sondern dass ich die Variablen immer zuerst mit einem Wert vorbelegen muss?

Nochmals danke und Gruß Ukyo
 
Hallo!

Nein...
Es ist nur so, dass Instanzvariablen automatisch mit ihren default Werten initialisiert werden und lokale Variablen nicht explizit initialisiert werden wie in deinem Beispiel der Fall. Dann verlangt nämlich der Compiler eine explizite Initialisierung vor dem ersten Zugriff.

Gruß Tom
 
Zurück