Komma problem
Hi @ all
ich versuche gerade einen (taschen)rechner zu programmiern nur bekomme ich es nich hin dass ich in die Textbox eine Kommazahl eingeben kann und dann das richtige Ergebnis bekomme. DAs komische ist wenn ich z. B. 5*5,5 kommt 15 raus wenn ich jetz aber 5*5.5 eigbebe kommt 27,5 raus. Wie schaff ich es dass ich 5,5 eingeben kann und trozdem das richtige Ergebnis bekomme? Ich benutze VB 2005 Express Edition.
Danke im Voraus
Gruß
MAxi
ich versuche gerade einen (taschen)rechner zu programmiern nur bekomme ich es nich hin dass ich in die Textbox eine Kommazahl eingeben kann und dann das richtige Ergebnis bekomme. DAs komische ist wenn ich z. B. 5*5,5 kommt 15 raus wenn ich jetz aber 5*5.5 eigbebe kommt 27,5 raus. Wie schaff ich es dass ich 5,5 eingeben kann und trozdem das richtige Ergebnis bekomme? Ich benutze VB 2005 Express Edition.
Danke im Voraus
Gruß
MAxi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 47319
Url: https://administrator.de/contentid/47319
Ausgedruckt am: 25.11.2024 um 13:11 Uhr
8 Kommentare
Neuester Kommentar
Hallo badmaxx!
Wenn Du den in die Textbox eingegebenen Text für eine Berechnung verwendest, solltest Du ihn eigentlich ohnehin konvertieren, zB mit CDbl() - damit wird auch das entsprechende Dezimaltrennzeichen erkannt.
Ansonsten bleibt Dir nur das gezielte Umwandeln des Kommas in einen Punkt in der Berechnung - Replace(TextBox1.Text, ",", ".") - oder die Umwandlung ohne Rücksicht auf die Optik direkt bei der Eingabe - dazu schreibst Du in "TextBox1_KeyPress"
Empfehlen kann ich Dir aber nur die oben angesprochene Typkonvertierung.
Grüße
bastla
Wenn Du den in die Textbox eingegebenen Text für eine Berechnung verwendest, solltest Du ihn eigentlich ohnehin konvertieren, zB mit CDbl() - damit wird auch das entsprechende Dezimaltrennzeichen erkannt.
Ansonsten bleibt Dir nur das gezielte Umwandeln des Kommas in einen Punkt in der Berechnung - Replace(TextBox1.Text, ",", ".") - oder die Umwandlung ohne Rücksicht auf die Optik direkt bei der Eingabe - dazu schreibst Du in "TextBox1_KeyPress"
If e.KeyChar = "," Then e.KeyChar = "."
Grüße
bastla
Hallo badmaxx!
Du konvertierst im Prinzip ohnehin schon mit Val(), sodass Du nur stattdessen CDbl() dafür einsetzen müsstest:
Wenn Du die Anzeige auf 2 Dezimalen runden willst (wie Du es in "Grundrechenarten_Load" versuchst, wo es aber nichts bringt), kannst Du den Formatcode "F" verwenden (oder benutzerdefiniert "0.00" - mit Punkt!):
Grüße
bastla
Du konvertierst im Prinzip ohnehin schon mit Val(), sodass Du nur stattdessen CDbl() dafür einsetzen müsstest:
If RadioButton1.Checked = True Then
TextBox3.Text = CDbl(TextBox1.Text) + CDbl(TextBox2.Text) 'Addition
End If
If RadioButton1.Checked = True Then
TextBox3.Text = Format(CDbl(TextBox1.Text) + CDbl(TextBox2.Text), "F") 'Addition
End If
Grüße
bastla