Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    561

    Problema di conversione tra tipi primitivi

    è possibile convertire una stringa in double?


    io ho scritto questa riga di codice:

    codice:
            Properties properties = new Properties();
            properties.load(new FileInputStream(pathFileConfig));
            radius=Float.valueOf(properties.getProperty("Radius"));
    ma mi da un'errore di NumberFormatException


    tulipan

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Problema di conversione tra tipi primitivi

    Originariamente inviato da tulipan
    codice:
            Properties properties = new Properties();
            properties.load(new FileInputStream(pathFileConfig));
            radius=Float.valueOf(properties.getProperty("Radius"));
    ma mi da un'errore di NumberFormatException
    Ci sono forse degli spazi .... il formato è molto rigoroso per il parsing.

    Tra l'altro se hai bisogno di un float (primitivo), non ti conviene usare valueOf() ma parseFloat(). In generale (anche per gli altri wrapper), valueOf(String) e parseXXX(String) fanno la stessa cosa ma il primo ritorna il wrapper e il secondo il primitivo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    561
    non ci crederai ma non sono presenti degli spazi


    tulipan

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    561
    ho scoperto perchè vuole iil . e non la ,


    grazie lo stesso
    tulipan

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da tulipan
    ho scoperto perchè vuole iil . e non la ,
    Certo perché il formato di parseXXX e valueOf non è localizzato. Se lo vuoi localizzato, usa NumberFormat.

    Tra l'altro in effetti parseXXX/valueOf di Float/Double accettano spazi iniziali/finali che vengono eliminati. Mentre ad esempio parseInt/valueOf di Integer non accetta spazi iniziali/finali. Il perché ci sia questa differenza non mi è chiaro.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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