| |
VB.NET - Ein- und UmsteigerKonvertieren von Zahlen | | | Autor: WKaH | Datum: 02.12.20 12:20 |
| Hallo,
ich habe folgende Frage.
In einem VB Programm werden ja Zahlen in einem String automatisch gewandelt.
Dabei ist es ja so das in einer Zahl wie 704.0 der Punkt nicht als Komma betrachtet wird.
Um den Punkt in einen Komma zu wandeln gibt es ja die Methode Convert.
Ich hätte also erwartet das das Ergebnis folgender Zeile
lblAnzeigeTexte2.Text = Convert.ToDouble("704.6")
704,6 ist. Das Ergebnis ist aber 7046.
Kann mir bitte jemand erklären warum das so ist.
PS. Bin Anfänger
Viele Dank im Voraus. | |
Re: Konvertieren von Zahlen | | | Autor: effeff | Datum: 02.12.20 20:10 |
| Das ist relativ einfach. Bei uns bedeutet der Punkt normalerweise ein Tausender-Trennzeichen. Da diese aber nur optisch wirken und der Punkt nichts weiter zu sagen hat, wird er weggelassen.
Dein richtiges Ergebnis erhältst Du, wenn Du weitere Informationen zur Behandlung mitgibst:
Dim Zahl As String = "704.6"
Dim Ergebnis As Double = Convert.ToDouble(Zahl, _
Globalization.CultureInfo.InvariantCulture)
MessageBox.Show(Ergebnis) EALA FREYA FRESENA | |
Re: Konvertieren von Zahlen | | | Autor: WKaH | Datum: 03.12.20 11:34 |
| Hallo effeff,
vielen Dank für deine Antwort. Das mit dem Punkt als Tausender Stelle habe ich mir schon gedacht.
Ich habe das Handbuch von Thomas Theis.
Das Handbuch gibt es auch online.
Siehe
http://openbook.rheinwerk-verlag.de/einstieg_vb_2010/einstieg_vb_2010_kap_02_003.htm#mj20c7dead4252982d3d4afab3a8f4e74d
Heißt das, da der Lösungsvorschlag im Abschnitt 2.2.3 Textfelder nicht komplett ist (Siehe Listing 2.10)? | |
Re: Konvertieren von Zahlen | | | Autor: effeff | Datum: 03.12.20 11:44 |
| Ich finde, die Erklärung steht in Abbildung 2.20 Markierung der Fehlerzeile.
EALA FREYA FRESENA | |
Re: Konvertieren von Zahlen | | | Autor: WKaH | Datum: 04.12.20 11:11 |
| Hallo effeff,
Die Abbildung der Fehlerzeile ist doch nur für den Fall, das keine Zahlen sonder Buchstaben eingegeben werden. Dann kann ja keine Rechnung ausgeführt werden. Weiter wird doch hier ausgeführt das der Punkt in einer Zahl mitteln der Programmzeile
lblAusgabe.Text = Convert.ToDouble(txtEingabe.Text) * 2
gewandelt wird. Siehe Listing 2.10
Das Funktioniert aber nicht. Es Funktioniert aber mit deinem Zusatz.
Fehlt also dein Zusatz nicht in der oben genannten Programmierzeile ?
Ansonsten habe ich die Funktion eines Textfeldes verstanden. | |
Re: Konvertieren von Zahlen | | | Autor: Manfred X | Datum: 04.12.20 11:31 |
| Hallo!
Eingegebene Strings überprüft man ggf. explizit darauf, ob sie
sich in einen Zahlenwert umwandeln lassen.
Als Alternative kann man einen Eingabefilter setzen, der dem
Benutzer ein bestimmtes Format vorgibt (z.b. MaskedTextBox).
Eine explizte Prüfung der Konvertierbarkeit einer Zeichenfolge
bilden die TryParse-Methoden der numerischen Datentypen
(z.B. Double.Tryparse). | |
Re: Konvertieren von Zahlen | | | Autor: WKaH | Datum: 05.12.20 11:24 |
| Hallo Manfred X,
vielen Dank für deine Antwort. Das ist sicher richtig was du schreibst.
Das beantwortet aber nicht meine Frage.
In dem Handbuch was ich habe steht drin, das der String z.B 702.4
mit der Programmzeile
lblAusgabe.Text = Convert.ToDouble(txtEingabe.Text) * 2
in 702,4 gewandelt wird.
Das Ergebnis müßte also 1404,8 und nicht 14048 sein.
Und das ist das was ich nicht verstehe. Oder wird mit der Programmzeile
die Zahl mit den Punkt nicht in einer Zahl mit einem Komma gewandelt? | |
Re: Konvertieren von Zahlen | | | Autor: Kuno60 | Datum: 05.12.20 15:05 |
| Hallo WKaH,
in dem von dir angegebenen Handbuch steht nicht drin, dass die Eingabe eines Punktes (702.4) mit Convert.ToDouble in 702,4 gewandelt wird.
In Deutschland wird das Komma als Dezimaltrennzeichen und der Punkt als Zifferngruppierung verwendet und deshalb wird bei der Eingabe und Ausgabe auch nur das Komma als Dezimaltrennzeichen akzeptiert (Windows-Einstellung).
Beim Programmieren und in Internet-Url's wird ein kulturunabhängiges Format verwendet. Dann ist der Punkt das Dezimaltrennzeichen. In diesem Fall wird aber kein Komma akzeptiert! | |
Re: Konvertieren von Zahlen | | | Autor: Manfred X | Datum: 06.12.20 16:12 |
| Hallo!
EffEff hatte Deine diesbezügliche Frage beantwortet.
Du musst beim Konvertieren die Culture-Einstellungen beachten.
Die Convert- und Parse-Methoden bieten dafür optionale Parameter. | |
Re: Konvertieren von Zahlen | | | Autor: WKaH | Datum: 08.12.20 10:32 |
| Hallo Manfred X,
vielen Dank für deine Ausführungen. Da ich Anfänger bin sieh mir bitte mein Nichtwissen nach.
Gruß WKaH | |
| 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 |
|
|
TOP! Unser Nr. 1
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere InfosTipp des Monats März 2024 Dieter OtterUTF-8 Konvertierung von Dateien und StringsVB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|
|
|
Copyright ©2000-2024 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
|
|