2012-05-25 9 views
5

Desidero consentire agli utenti di modificare un campo con dati doppi. Voglio consentire Double.NaN (per annullare i valori). Esiste un modo generico (una stringa predefinita) che viene analizzato in Double.NaN dal metodo Double.valueOf(String) senza verificarlo sullo sfondo?Parse String to Double.NaN

C'è un carattere speciale simile a un diamante con un punto interrogativo (in HTML) che si comporta come NaN, ma - beh - gli utenti non lo troveranno sulle loro chiavi.

risposta

8

È possibile passare +NaN o -NaN o NaN-valueOf() e lo hanno restituito un NaN. Il documentation fornisce tutti i dettagli.

+0

Ok che funziona, ma non per il mio caso particolare. Avrei dovuto dire che uso Groovy/Grails per analizzarlo dai dati Form HTML al doppio. Dice che è un "numero Unparseable" e si chiude con un IllegalArgumentException. Forse viene invocato un altro metodo per convertire la proprietà ... – matcauthon

+0

Questa non è la domanda che hai chiesto. Hai chiesto informazioni su 'Double.valueOf'. Sembra che tu abbia bisogno di una nuova domanda. –

+1

Ho pensato che il processo di conversione invochi Double.valueOf (String) da solo ed è quindi una semplice cosa correlata a Java, ma a quanto pare non lo è. È difficile eseguire il debug e trovare ciò che viene realmente chiamato. Mi dispiace per quella domanda poco chiara! – matcauthon

1

parseDouble("NaN") restituirà un valore NaN:

System.out.println(Double.isNaN(Double.parseDouble("NaN"));