2017-03-08 7 views
0

Wie kann ich ein Textfeld nur dann in ein Float konvertieren, wenn das Textfeld einen Wert hat?Wie Textbox in Float nur konvertieren, wenn nicht leer?

Im Moment habe ich diese float test = (float)Convert.ToDouble(textbox.Text);

Es funktioniert gut, aber gibt einen Fehler, wenn die Textbox leer.

+0

prüfen Textbox nicht leer ist, bevor Sie zu schwimmen versuchen, konvertieren. –

+0

werfen Sie einen Blick auf tryparse(). (msdn page enthält bereits Beispiele) – Rob

+2

Ihre Frage antwortet sich selbst - "wenn die Textbox leer ist" - wandeln Sie das in Code um und Sie werden gut sein. – CodeMonkey1313

Antwort

0

Es gibt viele Möglichkeiten, dies zu tun, aber im Allgemeinen testen Sie mit einem if. Zum Beispiel:

float test; 
if (!string.IsNullOrWhiteSpace(textbox.text)) 
    test = (float)Convert.ToDouble(textbox.Text); 
0

Eine sehr häufige Art und Weise ist double.TryParse zu verwenden, um die Konvertierung zu tun. Auf diese Weise können Sie leere und ungültige Werte mit einer einzigen Anweisung behandeln.

bool success = double.TryParse(textbox.Text, out value); 

Vergessen Sie nicht, success zu überprüfen und einen möglichen Fehler zu behandeln.

0

Es ist wirklich so einfach wie das in einer If-Anweisung.

float test; 

if(textbox.Text.Length > 0) //Or (textbox.Text != "") 
    test = (float)Convert.ToDouble(textbox.Text); 

Als zusätzlichen Vorschlag, mehrere Ebenen der Validierung ist immer eine gute Sache. Wenn Sie eine Schaltfläche zum Senden haben, sollten Sie testen, ob die erforderlichen Felder auf der Benutzeroberfläche leer sind, BEVOR sie an den Punkt gelangt, an dem sie konvertiert wird.

1

Ich denke, dass eine bessere Lösung sein:

float test = float.NaN; 
if(float.TryParse(textbox.Text, out test)) 
{ 
    // your code here 
} 
Verwandte Themen