PDA

Visualizza la versione completa : Errore conversione...


alex86
18-11-2003, 13:36
Non sto riuscendo a convertire una stringa presa da tastiera in un float... ecco una parte del codice:

import java.io.*;
import java.lang.*;

class Unico
{

public static void main(String args[])
{

Float x, y;

System.out.println("\n MENU:\n");
System.out.println(" 1) Esci dal programma");
System.out.println(" 2) Triangolo");
System.out.println(" 3) Quadrato");

InputStreamReader In = new InputStreamReader(System.in);
BufferedReader Letto = new BufferedReader(In);

int cosa = Integer.parseInt(Letto.readLine());

switch(cosa)
{
case 1:
System.exit(0);
break;
case 2:

System.out.println("\n\n PROGRAMMA: TRIANGOLO \n\n");
System.out.println("\n Inserisci le coordinate del primo vertice A");
System.out.print("X = ");
x = float.parseFloat(Letto.readLine());
System.out.print("\nY = ");
y= parseFloat(Letto.readLine());
Punto P0 = new Punto(x, y);

ma nn mi converte la stringa in float! come faccio? :cry:

LeleFT
18-11-2003, 14:23
Ho notato alcuni errori:

1) Hai dichiarato le variabili x e y come Float (e non come float: sono due cose BEN DIVERSE!)

2) Non hai gestito le eccezioni che possono essere sollevate dal metodo readLine()

3) Nella prima conversione a float tenti di usare un metodo della classe Float applicandolo al tipo di dato float (come sopra, sono due cose diverse): devi mettere la maiuscaola (Float.parseFloat() e non float.parseFloat)

4) Nella seconda conversione a float ti sei dimenticato completamente di specificare la classe Float a cui appartiene il metodo parseFloat().

Ecco il codice corretto:


import java.io.*;
import java.lang.*;

class Unico
{

public static void main(String args[])
{

float x, y;

System.out.println("\n MENU:\n");
System.out.println(" 1) Esci dal programma");
System.out.println(" 2) Triangolo");
System.out.println(" 3) Quadrato");

try {
InputStreamReader In = new InputStreamReader(System.in);
BufferedReader Letto = new BufferedReader(In);

int cosa = Integer.parseInt(Letto.readLine());

switch(cosa)
{
case 1:
System.exit(0);
break;
case 2:
System.out.println("\n\n PROGRAMMA: TRIANGOLO \n\n");
System.out.println("\n Inserisci le coordinate del primo vertice A");
System.out.print("X = ");
x = Float.parseFloat( Letto.readLine() );
System.out.print("\nY = ");
y = Float.parseFloat( Letto.readLine() );
}
} catch (Exception e) {}
}
}


C' differenza fra il tipo di dato primitivo float e la classe (Oggetto) Float!


Ciao. :ciauz:

alex86
18-11-2003, 14:41
grazie! risolto tutto... :ciauz:

Loading