Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Errore conversione...

  1. #1

    Errore conversione...

    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?
    [ SimplyMepis 8 ]Copyleft
    www.mepisitalia.org IL SITO ITALIANO UFFICIALE DI MEPIS
    www.salentomovida.it LA MOVIDA DEL SALENTO HA UN NUOVO PUNTO D'INCONTRO SUL WEB
    [ SUD SOUND SYSTEM MINA FUECU INTRA ALLU SALENTU ]

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    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:
    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"); 
    
        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.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    grazie! risolto tutto...
    [ SimplyMepis 8 ]Copyleft
    www.mepisitalia.org IL SITO ITALIANO UFFICIALE DI MEPIS
    www.salentomovida.it LA MOVIDA DEL SALENTO HA UN NUOVO PUNTO D'INCONTRO SUL WEB
    [ SUD SOUND SYSTEM MINA FUECU INTRA ALLU SALENTU ]

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.