Jak w prosty sposób sprawdzić, czy zmienna jest podwójna?
Musisz być bardziej precyzyjny, próbując to zrobić, . Nie sądzę, że pytasz o to, o co pytasz, i warto być świadomym różnic w terminologii.
Jeśli masz zmienną, która jest oświadczył być typu double
, to jest to zdecydowanie double
.Jeśli masz zmienną, która jest zadeklarowana jako typu object
, ValueType
lub jeden z interfejsów, którego dotyczą, a następnie można użyć
if (value is double)
Ale to brzmi jak co naprawdę chcesz wiedzieć, czy wartość ciągu to parsowana jako double
. W tym celu powinieneś użyć double.TryParse
- ale musisz także pomyśleć o kulturze, którą chcesz. Na przykład, czy uznasz "15,5" za ważny double
? Europejscy użytkownicy mogliby, ale użytkownicy z USA prawdopodobnie nie. Czy chcesz zezwalać na separatory tysięcy?
Zdecydowanie radzę użyć przeciążenia, które ma wartość IFormatProvider
i użyć odpowiedniej kultury. Nawet jeśli interesującą Cię kulturą jest , domyślnie jest to. Warto o tym powiedzieć.
Prawdopodobnie chcesz:
double result;
// For suitable values of text, style and culture...
bool valid = double.TryParse(text, style, culture, out result);
Następnie użyć zmiennej valid
celu ustalenia, czy nie było faktycznie analizowany poprawnie. Jeśli valid
jest prawdziwe, wówczas wartość result
jest analizowaną wartością. Jeśli valid
jest fałszywe, result
będzie 0.
"zmienna" jest niewłaściwym słowem. Próbujesz ustalić, czy tekst można przekonwertować na wartość zmiennoprzecinkową. Gdybyś określał typ zmiennej, użyłbyś zmiennej.GetType() == typeof (double) – Brannon