# Fehler bei Double.parseDouble



## ukyo184 (9. März 2005)

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:

```
//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


----------



## Thomas Darimont (9. März 2005)

Hallo!

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

Gruß Tom


----------



## teppi (9. März 2005)

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

Gruß Stefan


----------



## Thomas Darimont (9. März 2005)

Hallo!

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

Gruß Tom


----------



## ukyo184 (10. März 2005)

Thomas Darimont hat gesagt.:
			
		

> Hallo!
> 
> Ersetz doch einfach mal
> String eingabe;
> ...


 
  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


----------



## Thomas Darimont (10. März 2005)

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


----------

