Float in MessageBox
-
aber wenn es sich nur um Zahlen handelt, warum soll ich dan AnsiString nehmen! Float ist doch eigentlich geeigneter, oder?
Muss ich den die Variablen, die in die MessageBox sollen auch mit char* vereinbaren?Vielen Dank für die Hilfe
lg, freakC++
-
eventuell hilft ja dieser Thread: http://www.c-plusplus.net/forum/viewtopic-var-t-is-171253-and-start-is-0-and-postdays-is-0-and-postorder-is-asc-and-highlight-is-%2Amessagebox%2A.html, der ist allerdings für Integer, aber vielleicht bekommst du durch ein wenig probieren ja auch Float da rein gebastelt
-
Hallo
aber wenn es sich nur um Zahlen handelt, warum soll ich dan AnsiString nehmen! Float ist doch eigentlich geeigneter, oder?
Wenn ich eine Variable mit float vereinbat habe und diese Zahl dann in eine MessageBox darstellen möchte
Du beantwortest deine Frage doch selber. Alles was du irgendwie anzeigen willst muß in Strings egal welcher Art umgewandelt werden. Sei es nun direkt oder impliziet. Du brauchst AnsiString natürlich nicht wenn du mit float rechnen willst. Erst wenn du das Ergebnis anzeigen willst.
bis bald
akari
-
Alles klar! Habs verstanden!
Vielen Dank für die Hilfe
lg, freakC++
-
ahh...doch noch eine Frage zu diesem Quelltext:
void __fastcall TForm1::Button2Click(TObject *Sender) { Vmax = CGM / pow(Rmax, 0.5); Ergebnis = FloatToStrF (Vmax, ffNumber, 8,2); Loesung = "Das Ergebnis für Vmax lautet "; Loesung += Ergebnis; Titel = "Für Rmax = " + String(Rmax) + " und CGM = " + String (CGM, ffNumber, 8, 2); Application->MessageBoxA(Loesung.c_str (), Titel.c_str (), 0); }
Es ist ja so, dass alles was angezeigt werden soll, in einen Strin umgewandelt werden muss. Das heißt doch, dass der Befehl "String" wie auch in diesem Beispiel die Zahl (hier Rmax oder CGM) in den String umwandelt, oder?!
Vielen Dank für die Hilfe!! (ich denke, dass die Grundlagen mir bald geläufiger werden
)
lg, freakC++
-
hast du schonmal versucht das zu kompilieren?
warum geht Zeile 4? warum Zeile 7 nicht?
-
ups....kleiner Rechtschreibfehler...es soll natürlich FloatToStrF heißen!!
Sry! Aber das Programm funzt!! Leider muss ich an mir selber wieder zweifeln, dass ich es verstanden habe, denn nach meiner Vorstellung müsste dieser Quelltext jetzt funktionieren, was jedoch nicht der Fall ist!!
if (GM == 0) { Ergebnis = V * pow(R, POT); Loesung = FloatToStrF (Ergebnis, ffNumber, 8, 2); Application->MessageBox (Loesung.c_str (), "", 0); }
Brauche nochmals Hilfe
lg, freakC++PS. Fehler E2034 und E2342 kommen!! Ich habe schonmal über diesen Quelltext gesprochen, doch möchte ich immer alles verstehen, was ich in mein Programm schreiben!! Kann sein, dass sich manches ähnlich anhört, was ich schonmal gefragt habe!! Für mich ist es jedoch ziemlich wichtig
-
Ich brauche Hilfe!!!
-
in welcher Zeile treten denn die Fehler auf?
-
In der Zeile "Loesung = FloatToStrF (Ergebnis, ffNumber, 8, 2);"
Fehler:
[C++ Fehler] Unit1.cpp(87): E2034 Konvertierung von 'AnsiString' nach 'long double' nicht möglich
[C++ Fehler] Unit1.cpp(87): E2342 Keine Übereinstimmung des Typs beim Parameter 'Value' ('long double' erwartet, 'AnsiString' erhalten)
Vielen Dank für eure Hilfe
lg, freakC++
-
Hallo
Wie die Fehlermeldung schon sehr klar sagt hast du irgendwo einen AnsiString, wo aber der Compiler korrekterweise einen double/float erwartet. Da du aber in deinem Code nicht die Variablendeklarationen zeigst und wir damit nicht wissen welche Variable welchen Typ hat könnten wir nur raten.
Tip : benutzt lieber lokale als globale Variabln, dann hast du die Deklarationen auch immer an Ort und Stelle.
bis bald
akari
-
Hallo,
es soll kein Geheimnis sein. Ich hab alles mit float vereinbat!! Ist es denn nicht von Nachteil, lokal zu vereinbaren, denn die Variabeln werden noch in anderen Methoden gebraucht, was heißt, dass ich sie immer neu anmelden müsste!?lg, freakC++
-
ist die Variable Ergebnis wirklich vom Typ float? zeig mal die Variablendeklaration, denn in deinem 4. Post ist diese Variable vom Typ AnsiString
-
oha..ich hab was ausgelassen. Ergebnis ist natürlich mit String vereinbart. Hier:
//--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; float Vmax, Rmax, CGM; float GM, V, R, POT; String Ergebnis, Titel, Loesung, Knopf; //---------------------------------------------------------------------------
Vielen Dank für eure Hilfe!!!
lg, freakC++