Konvertierung textBox->Text nach double
-
Hallo,
Wie kann ich den Inhalt einer textBox in eine double Variable konvertieren?
Ich verwende Visual Studio 2008.Michael
P.S. Für das umgekehrte Problem habe ich auch noch keine Lösung gefunden: Wie gebe ich eine float Zahl in einer textBox aus? Oder nimmt man dafür gar keine textBox? Gibt es spezielle Objekte für die Ein- und Ausgabe von Zahlen, so dass man sich die Konvertierung ersparen kann?
-
atoi und Format sind deine Partner.
Gruß Matthias
-
Hallo Matthias,
> atoi und Format sind deine Partner.
atoi ist doch aber für integer? Ich hatte schon atof ausprobiert:
char buffer[20] = textBox1->Text;
double aa = atof(buffer);Aber das gibt folgende Fehlermeldung in der ersten Zeile:
error C2440: 'initializing' : cannot convert from 'System::String ^' to 'char [20]'Michael
-
Hallo
Du arbeitest doch nicht mit MFc, sondern mit .net, oder? Wenn ja dann
double.Parse(textBox.Text);
chrische
-
sorry meinte auch atof, is aber egal, da du hier eh nicht richtig bist, stell deine Fagen doch unter C++/CLI und .net rein, die haben bestimmt eine Antwort auf deine Frage
Gruß Matthias
-
Hallo,
> Du arbeitest doch nicht mit MFc, sondern mit .net, oder?
> ... da du hier eh nicht richtig bist, stell deine Fagen doch unter C++/CLI und .net rein,
Tut mir leid wenn ich an der falschen Stelle gefragt habe -- mit der Programmierung von grafischen Oberflächen fange ich gerade erst an. Ehrlich gesagt weiss ich noch gar nicht mit welchem Framework ich arbeite. Ich habe mit Visual Studio 2008 ein neues Projekt angelegt, dann "Windows Forms Application" ausgewählt, und dann steht am rechten Rand so eine Toolbox zur Verfügung. Zu welchem Framework diese Tools gehören ist mir unklar.
Gruss
Michael
-
micha7 schrieb:
Ich habe mit Visual Studio 2008 ein neues Projekt angelegt, dann "Windows Forms Application" ausgewählt, und dann steht am rechten Rand so eine Toolbox zur Verfügung. Zu welchem Framework diese Tools gehören ist mir unklar.
Hmm, laß mich raten... WinForms? :p
-
Dieser Thread wurde von Moderator/in estartu aus dem Forum MFC (Visual C++) in das Forum C++/CLI mit .NET verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hallo,
zunächst einmal danke dass meine Frage ins richtige Forum verschoben wurde.
Ich habe inzwischen die TextBox durch ein NumericUpDown Objekt ersetzt, und damit habe ich das Problem umgangen.
Aber rein interessehalber interessiert mich trotzdem, wie man den Text aus einer TextBox in eine double Variable übertragen kann. Und wie konvertiere ich eine double Variable zurück in die TextBox?
Mir ist auch noch nicht klar geworden von welchen Typ das Attribut "TextBox->Text" eigentlich ist. Wo finde ich diese Information?Zusatzfrage: Gibt es ein empfehlenswertes Buch als Einführung in die Programmierung von grafischen Oberflächen mit Visual Studio 2008?
Gruss
Michael
-
Hallo
Wie die Konvertierung funktioniert, habe ich doch bereits geschrieben. Nie probiert? Ein numericupdown ist eh besser, weil da der User nicht so viel Mist eingeben kann. .Text ist ein Property und gibt einen string zurück. Wenn du mit VS arbeitest und mit der Maus auf das Property im Code gehst, wird ein kleines Fenster (Tooltip) geöffnet und gu kannst den Rückgabetyp erkennen.
chrische
-
Hallo,
> Wie die Konvertierung funktioniert, habe ich doch bereits geschrieben. Nie probiert?
Doch, aber es hat leider nicht funktioniert. Wenn ich schreibe
double.Parse(textBox1.Text);
dann gibt's diesen Fehler:
error C2143: syntax error : missing ';' before '.'Und wenn ich schreibe
double a;
a = double.Parse(textBox1.Text);dann gibt's diesen Fehler:
error C2062: type 'double' unexpectedGruss
Michael
-
versuch mal Double::Parse(textbox1->Text); (schau mal in die MSDN zum Typ Double )
-
Hallo,
> versuch mal Double::Parse(textbox1->Text);
Danke, das hat funktioniert!
Und wie kann ich die double Zahl wieder zurück in die TextBox schreiben?
Gruss
Michael
-
Hallo
Erstmal sorry, ich war bei c#, zweitens solltest du lernen mir google zu arbeiten.
chrische
-
Hallo,
> Und wie kann ich die double Zahl wieder zurück in die TextBox schreiben?
Habe die Lösung gefunden:
textBox2->Text = System::Convert::ToString(a);Ich verstehe zwar noch nicht wie und warum es funktioniert, aber das soll erst mal egal sein.
Bleibt noch die Frage nach einem guten Buch als Einführung in die VS / C++ Programmierung von grafischen Oberflächen.
Gruss
Michael
-
Du solltest erst einmal mit den Grundlagen anfangen und die Finger von der GUI lassen. Tutorials und Buchempfehlungen hierfür findest Du auf der Startseite von c-plusplus.net
-
Hallo,
> Du solltest erst einmal mit den Grundlagen anfangen und die Finger von der GUI lassen.
Die Grundlagen sind mir bereits bekannt, ich programmiere seit 20 Jahren in C, allerdings bislang nur für Mikrocontroller.
C++ ist für mich noch relativ neu, habe aber gerade bei der VHS einen C++ Kurs mitgemacht. Jetzt ist learning by doing angesagt. Dabei muss ab und zu ein lauffähiges Programm rauskommen, denn sonst würde ich die Lust an der Sache verlieren. Ein erster Anfang ist gemacht, ich habe seit heute ein lauffähiges Programm mit NumericUpDown, TextBox, Panel, und sogar schon Linien in das Panel reingezeichnet.
Ohne eure Hilfe wäre ich jetzt noch nicht so weit!> Tutorials und Buchempfehlungen hierfür findest Du auf der Startseite von c-plusplus.net
Dort steht aber nichts was speziell das Thema GUI / Visual Studio 2008 betreffen würde.
Als allgemeines C++ Nachschlagewerk habe ich schon das Buch "C++ Einführung und professionelle Programmierung" von Ulrich Breymann.Gruss
Michael
-
Die Grundlagen sind mir bereits bekannt, ich programmiere seit 20 Jahren in C, allerdings bislang nur für Mikrocontroller.
double.Parse(textBox1.Text);
dann gibt's diesen Fehler:
error C2143: syntax error : missing ';' before '.'double a;
a = double.Parse(textBox1.Text);dann gibt's diesen Fehler:
error C2062: type 'double' unexpectedGenerell sei noch angemerkt: .Net GUI und C++/CLI passen nicht wirklich zusammen. Hier würde ich (aus Erfahrung
zu C# raten.
-
Hallo,
double.Parse(textBox1.Text);
War ja auch nicht meine Idee das so einzutippen. Hätte ja sein können dass das "." ein überladener Operator ist dessen Bedeutung ich noch nicht kenne. Woher soll ich denn wissen dass das C# Code war -- von C# habe ich nämlich wirklich Null Ahnung.
Gruss
Michael