Announcement

Collapse
No announcement yet.

Komma Punkt Problematik mit Hilfe von TryParse

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Komma Punkt Problematik mit Hilfe von TryParse

    Hallo!
    Anscheinend bin ich echt zu blöd dazu!
    Folgendes Problem.
    Ich will das Dezimalwerte in meinen Textboxen Addiert werden können - folgenden Code verwende ich hierfür:

    [highlight=vbnet]Dim x As Double
    If Double.TryParse(TextBox1.Text, x) Then
    TextBox2.Text = (x + TextBox3.Text)
    End If[/highlight]


    Das geht auch sehr gut! Aber wie schreibe ich den Code um wenn ich mehr Textboxen habe?
    Wie zum Beispiel muss folgender Code umgeschrieben werden damit dezimalstellen erkannt werden?


    [highlight=vbnet]TextBox64.Text = Val(TextBox50.Text) + Val(TextBox51.Text) + Val(TextBox52.Text) + Val(TextBox53.Text) + Val(TextBox54.Text) + Val(TextBox55.Text) + Val(TextBox56.Text)
    [/highlight]

    Danke im vorraus für eure Hilfe
    Gruß Jürgen
    Zuletzt editiert von vierkant; 31.10.2009, 20:30.

  • #2
    Hallo Jürgen,

    tut mir leid, darauf will ich nicht konkret antworten: In der Zeile, die mit TextBox2 beginnt, addierst du zu einer Zahl einen String, und das Ergebnis wird wieder einem String zugewiesen. Auch wenn VB in der Hinsicht etwas großzügiger ist, solltest du dir dringend angewöhnen, zwischen Zahlen und Strings strikt zu unterscheiden.

    Bei vielen TextBoxen gibt es nichts anderes, als TryParse entsprechend oft aufzurufen. Allenfalls kann man es mit einer Schleife über die in Controls oder einem separaten Array enthaltenen Elemente vereinfachen.

    Übrigens gehören Bezeichner wie TextBox64 verboten. Da weißt nach spätestens 14 Tagen auch du nicht mehr, wozu sie dient; siehe stattdessen NET Richtlinien für Namen.

    Gruß Jürgen

    Comment


    • #3
      Originally posted by vierkant View Post
      [highlight=vbnet]
      Dim x As Double
      If Double.TryParse(TextBox1.Text, x) Then
      TextBox2.Text = (x + TextBox3.Text)
      End If
      [/highlight]
      Hi, was mich an diesem Quelltext wundert, ist dass du nur den Inhalt der TextBox1 konvertierst und den Inhalt aus der TextBox3 so übernimmst.

      [highlight=vbnet]
      Dim x As Double
      If Not Double.TryParse(TextBox1.Text, x) Then
      Exit Sub
      End If
      Dim y As Double
      If Not Double.TryParse(TextBox3.Text, y) Then
      Exit Sub
      End If
      Dim z As Double
      If Not Double.TryParse(TextBox1.Text, z) Then
      Exit Sub
      End If
      TextBox2.Text = (x + y + z).ToString()
      [/highlight]
      "(...) deshalb mag ich Binärtechnik. Da gibt es nur drei Zustände: High, Low und Kaputt." (Wau Holland)

      Viele Grüße Novi

      Comment


      • #4
        Danke Novi

        Comment

        Working...
        X