Willkommen im #Neuland
Login wie bei quake.ingame.de zuvor, die Passwörter aus der alten Datenbank wurden aber gelöscht - einmal hier neu anfordern.
Wer seine E-Mail-Adresse nicht mehr hat oder kennt, bitte eine Nachricht mit Infos schicken o. im Discord melden.

PQ Discord Server: #planetquake                                                                                                                                         Spenden? Hier entlang!

[VC++] Konvertierungen

Forum für alles rund ums Coden und web.design - HTML, XHTML, XML, CSS, PHP, ASP, Zugriffsrechten, Mods uvm.
Antworten
cKy
Bones
Bones
Beiträge: 3199
Registriert: Dez 2002
Wohnort: BRD

Beitrag von cKy »

Folgendes:

Ich habe eine Dialogbasierende Anwendung in der man in einem Eingabefeld einen Eurowert eingibt, dann auf den Button "Rechnen" Drückt und dann soll in dem Programm der Eurowert * 1,7 genommen werden und dies in einem Textfeld wieder ausgegeben werden.

Mein Problem ist folgendes:
Man kann ja keine Strings multiplizieren also muss ich aus dem String des Eingabefeldes einen float wert machen.
Das mache ich mit "EingabeEuro.Format("%f",Euro);"
Dann wird das alles ausgerechnet und in die float Variable "Franken" gespeichert.
Jetzt will ich das ganze in dem Textfeld ausgeben...Brauche aber einen String.
Wie rechne ich jetzt die Floatzahl in nen String um?

Hier ist die ganze Methode:

void CGUI1Dlg::OnRechnen()
{
CString EingabeEuro;
CString AusgabeFranken;
const float Faktor=1.7;
float Euro;
float Franken;

GetDlgItemText(IDC_EingabeEuro,EingabeEuro);

EingabeEuro.Format("%f",Euro);

Franken=Euro*Faktor;

//Umrechnung von Float in String


SetDlgItemText(IDC_Ausgabe,AusgabeFranken);

}
Roughael
Stripe
Stripe
Beiträge: 2498
Registriert: Mär 2002

Beitrag von Roughael »

format macht einen string aus mehreren argumenten (wie sprintf) und nich umgekehrt..
lösung sollte so aussehen:

Code: Alles auswählen

void CGUI1Dlg::OnRechnen([b][/b])[br]{[br]	CString EingabeEuro;[br]	CString AusgabeFranken;[br]	const float Faktor=1.7;[br]	float Euro;[br]	float Franken;[br][br]	GetDlgItemText(IDC_EingabeEuro,EingabeEuro[b][/b]);[br][br]	Euro = atof(EingabeEuro[b][/b]);[br]	Franken=Euro*Faktor;[br][br]	AusgabeFranken.Format("%f",Franken[b][/b]);[br][br]	SetDlgItemText(IDC_Ausgabe,AusgabeFranken[b][/b]);[br]}
Have Fun!
Bandit.
<-- Ehemaliger TTK-Bandit, bis inquake rumzickte -->

Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
cKy
Bones
Bones
Beiträge: 3199
Registriert: Dez 2002
Wohnort: BRD

Beitrag von cKy »

Original erstellt von TTK-Bandit
format macht einen string aus mehreren argumenten (wie sprintf) und nich umgekehrt..
lösung sollte so aussehen:

Code: Alles auswählen

void CGUI1Dlg::OnRechnen([b][/b])[br]{[br]	CString EingabeEuro;[br]	CString AusgabeFranken;[br]	const float Faktor=1.7;[br]	float Euro;[br]	float Franken;[br][br]	GetDlgItemText(IDC_EingabeEuro,EingabeEuro[b][/b]);[br][br]	Euro = atof(EingabeEuro[b][/b]);[br]	Franken=Euro*Faktor;[br][br]	AusgabeFranken.Format("%f",Franken[b][/b]);[br][br]	SetDlgItemText(IDC_Ausgabe,AusgabeFranken[b][/b]);[br]}
Have Fun!
Bandit. [/b]
Danke!

Eine Frage ist mir noch eingefallen...

Ist es besser man Konvertiert den String mit atof in eine Float zahl und weisst sie der float variable gleich zu oder man weisst gleich der IDC_EingabeEuro eine Membervariable "float m_EingabeEuro" zu?

Also was ist sauberer Programmiert?

Nochmals Danke!
Roughael
Stripe
Stripe
Beiträge: 2498
Registriert: Mär 2002

Beitrag von Roughael »

wenn du es nur für zahlen nutzt, sollte das in ordnung sein,
wenn du gleich ne float variable nimmst.. wozu extra variablen dazu erzeugen ?

btw GetDlgItemText nutz ich schon lange nichmehr.. DDX_Text is viel bequemer ;)
Have Fun!
Bandit.
<-- Ehemaliger TTK-Bandit, bis inquake rumzickte -->

Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
Antworten