2012-05-25 18 views
5

Chcę pozwolić użytkownikom edytować pole z podwójnymi danymi. Chcę zezwolić na Double.NaN (aby anulować wartości). Czy istnieje ogólny sposób (predefiniowany ciąg), który jest analizowany pod kątem Double.NaN z metody Double.valueOf(String) bez sprawdzania go w tle?Parse String to Double.NaN

Jest specjalny znak wyglądający jak diament ze znakiem zapytania (w HTML), który działa jak NaN, ale - cóż - użytkownicy nie znajdą tego na swoich kluczykach.

Odpowiedz

8

Możesz przekazać lub -NaN lub NaN do valueOf() i zwrócić mu NaN. documentation podaje pełne szczegóły.

+0

Ok, który działa, ale nie dla mojego szczególnego przypadku. Powinienem wspomnieć, że używam Groovy/Grails do parsowania go z danych HTML Form do podwójnego. Mówi, że jest to "liczba nieodparwalna" i rezygnuje z wyjątku IllegalArgumentException. Może inna metoda jest wywoływana, aby przekonwertować własność ... – matcauthon

+0

To nie jest pytanie, które zadałeś. Pytałeś o 'Double.valueOf'. Wygląda na to, że potrzebujesz nowego pytania. –

+1

Myślałem, że proces konwersji wywołuje samodzielnie Double.valueOf (String) i dlatego jest zwykłą rzeczą związaną z Javą, ale najwyraźniej tak nie jest. Trudno debugować i znaleźć to, co tak naprawdę nazywa się. Przepraszam za to niejasne pytanie! – matcauthon

1

parseDouble("NaN") zwróci NaN wartość:

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