vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: String in Double ohne Fehler - Programm rechnet trotzdem nicht 
Autor: Manfred X
Datum: 09.04.12 15:21

Hallo!

In Programmiersprachen gibt es verschiedenartige Datentypen.
Die Texteigenschaft eines Textbox-Control kann beliebige
Zeichenfolgen enthalten. Ob es sich dabei um eine numerisch
interpretierbare Folge von Zeichen handelt, wird durch
Culture-Einstellungen (Symbol für Vorzeichen, Separatoren u.a.)
festgelegt und muss überprüft werden.

Dafür gibt es bei den numerischen "Structures" jeweils die
Tryparse-Methode. Als erster Parameter bekommt sie die zu
prüfende Zeichenfolgenvariable, als zweiten Parameter die
numerische Variable (= Zuweisungsziel).

Klappt die Umwandlung, gibt "Tryparse" true zurück; sonst false
und es wird pauschal 0 auf die num. Variable zugewiesen.
(Alternativ gibt es die Parse-Methode -> Ausnahme.
Die Funktionen "IsNumeric" oder "Val" sind veraltet.)

"TryParse" kombiniert die Zeichenüberprüfung mit der Zuweisung
des Wertes! Eine direkte Zuweisung auf die numerische
Variable ist nicht erforderlich!

Setze in Deine Codedatei (ganz am Anfang) folgende Zeile:
Option Strict On : Option Explicit On

Die IDE erlaubt dann keine "impliziten" Typumwandlungen mehr,
der Versuch wird als Fehler eingestuft.

Im deutschen Sprachraum (Culture/Windows-Einstellungen) ist das
Dezimalkomma (,) vorgesehen. Der Punkt (.) wird als Gruppentrenner
interpretiert (z.b. 1.234,456).
Manche Nutzer verwenden aber bei der Eingabe den Dezimalpunkt.
Ich habe deshalb vorgeschlagen, vor dem Scannen in der Textbox
den Punkt durch das Komma zu ersetzen (Decsep). Dadurch wird
verhindert, dass z.B. die Eingabe 1.25 als Wert = 125 geparst wird
( = Interpretation des Punktes als Zifferngruppentrenner)
Diese Zeichen-Ersetzung (Replace) muss pro String nur einmal erfolgen,
wenn eine Zuweisung benutzt wird (siehe Code-Beispiel).

Als Alternative kannst Du eine MaskedTextbox verwenden und der
Mask-Eigenschaft des Control "999,999.00" zuweisen.
http://msdn.microsoft.com/de-de/library/system.windows.forms.maskedtextbox.mask.aspx

MfG
Manfred

Beitrag wurde zuletzt am 09.04.12 um 15:37:27 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
String in Double ohne Fehler - Programm rechnet trotzdem nic...3.741IThink01.04.12 15:59
Re: String in Double ohne Fehler - Programm rechnet trotzdem...2.780Manfred X01.04.12 16:15
Re: String in Double ohne Fehler - Programm rechnet trotzdem...2.827Manfred X01.04.12 18:24
Re: String in Double ohne Fehler - Programm rechnet trotzdem...2.742IThink04.04.12 23:24
Re: String in Double ohne Fehler - Programm rechnet trotzdem...2.747Manfred X04.04.12 23:35
Re: String in Double ohne Fehler - Programm rechnet trotzdem...2.752IThink08.04.12 21:15
Re: String in Double ohne Fehler - Programm rechnet trotzdem...2.804Manfred X09.04.12 15:21
Re: String in Double ohne Fehler - Programm rechnet trotzdem...2.740IThink09.04.12 15:56
Re: String in Double ohne Fehler - Programm rechnet trotzdem...2.897Manfred X09.04.12 16:34
Re: String in Double ohne Fehler - Programm rechnet trotzdem...2.924IThink09.04.12 18:20
Re: String in Double ohne Fehler - Programm rechnet trotzdem...2.684Manfred X09.04.12 18:35
Re: String in Double ohne Fehler - Programm rechnet trotzdem...2.746IThink09.04.12 21:07
Re: String in Double ohne Fehler - Programm rechnet trotzdem...2.755IThink09.04.12 22:31
Re: String in Double ohne Fehler - Programm rechnet trotzdem...2.720Manfred X09.04.12 22:42
Re: String in Double ohne Fehler - Programm rechnet trotzdem...2.941IThink11.04.12 19:19
Re: String in Double ohne Fehler - Programm rechnet trotzdem...2.801keco11.04.12 19:28
Re: String in Double ohne Fehler - Programm rechnet trotzdem...2.715IThink11.04.12 19:33
Re: String in Double ohne Fehler - Programm rechnet trotzdem...2.714IThink11.04.12 19:51
Re: String in Double ohne Fehler - Programm rechnet trotzdem...2.720Manfred X11.04.12 20:26
Re: String in Double ohne Fehler - Programm rechnet trotzdem...2.677IThink11.04.12 22:34
Re: String in Double ohne Fehler - Programm rechnet trotzdem...2.789Manfred X11.04.12 23:06
Re: String in Double ohne Fehler - Programm rechnet trotzdem...2.671Manfred X11.04.12 21:05
Re: String in Double ohne Fehler - Programm rechnet trotzdem...2.736IThink11.04.12 22:38
Re: String in Double ohne Fehler - Programm rechnet trotzdem...2.685IThink12.04.12 19:17
Re: String in Double ohne Fehler - Programm rechnet trotzdem...2.734Manfred X12.04.12 20:35

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel