Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1

    Testare un valore float

    Come faccio a testare un valore float verificando che non ci siano caratteri strani ?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Suppongo il float arrivo sottoformato di testo (String): allora, API alla mano:

    parseFloat

    se solleva eccezioni allora non era in formato valido.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Purtroppo io mi ritrovo il valore in esempio 12334e+566 nal campo float e che devo testare !
    per questo chiedevo come potevo fare-

    Quindi va bene come mi hai prospettato ? gurdando questo link però :
    http://www.webfract.it/MATJAVA/functGlob3.htm

    nel primo esempio di parsefloat(stringa) e nel caso prospettato uguale al mio,
    comunque restituisce un numero; ma solleva in questo caso comunque un'eccezione come tu dici ?



    Grazie

    Saluti

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    a fare una prova non morivi mica:
    codice:
    public static void main (String[] args) {
            //String bigOne = "12334e+566";
            String bigOne = "1e+36";
            try {
                float f = Float.parseFloat(bigOne);
                System.out.println(f);
            }
            catch (Exception e) {
                e.printStackTrace();
            }
        }
    il secondo lo gestisce (è nel range ammesso dei float), il primo - commentato - non lo gestisce, ovvero non solleva alcuna eccezione, ma lo parsa come Infinity.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Grazie gentilissimo e scusa il disturbo !

  6. #6
    Ciao scusa
    ho in problema in questo caso, che il valore float già in se per se contiene un dato sporco

    in pratica float var contiene (valore sporco) 12344+e121 e non è stringa

    Quindi nel caso tuo prospettato, pressuppone un valore stringa.

    Cosa devo fare per testarlo, passarlo prima a stringa e poi fare il test che mi hai consigliato ?

    Grazie

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    scusa ma come fai ad avere in float quel valore: semplicemente in un float non ci sta. O hai Infinity oppure qualcosaltro che non è float.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  8. #8
    Originariamente inviato da Andrea1979
    scusa ma come fai ad avere in float quel valore: semplicemente in un float non ci sta. O hai Infinity oppure qualcosaltro che non è float.
    hai ragione ! eppure è così perchè ho fatto una System.out.println per intercettarlo perciò dicevo che era sporco, in questo caso come risolvo ? Se voglio testare infinity ?

    io ho fatto in questo modo come mi hai suggerito ma non ha funzionato nel senso che Exception e non la esegue (appena provato - nfloat è di tipo float) :

    codice:
           
            String valString = String.valueOf(nfloat);
            try {
                float f = Float.parseFloat(valString);
            }
            catch (Exception e) {
                
                nfloat = 0;
                System.out.println("Valore a zero");
                        
            }
          return nfloat;

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    posta tutto, così non dice niente. E poi non viene sollevata alcuna eccezione perché il formato è valido. Ti verrebbe sollevata un'eccezione (NumberFormatException) solo se il formato numerico non fosse valido, per intenderci, se provassi a parsare qualcosa tipo "123.56Andrea"
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  10. #10
    In fatti io mi ritrovo il valore 9.459787E-38 e qualche altro caso; quindi io devo discriminare il valore corretto per intenderci

    Come faccio ?

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 © 2025 vBulletin Solutions, Inc. All rights reserved.