Problem mit Berechnungen und Ausgabe
-
Hallo,
ich bastel mir Gerade ein Programm mit Visual C++ 2008 Forms kann aber nicht wirklich programmieren. In PHP läuft das Programm schon länger aber da arbeite ich ja mit $xy = $_POST etc.Ich habe mehrere textBoxen wie zb Box1 Wasservolumen netto box 2 Aktueller xy Wert box 3 gewünschter xy wert box 4 aktueller xyz wert box 5 gewünschter xyz wert usw
dann einen Button namens Button2
Nach eingabe der Werte soll nach drücken auf den button in einer textbox 8 das ergebnis aus der Bereichnung box3 - box2 * box1 / 1000 * 147.1 / 40.1 stehen
Auch soll bei der Button Betätigung in textbox9 dann eine berechnung paralel zur ersten ausgebenen werden wie box5-box4 * box1 / 1000 * 45 / 211 etc.Ich hab aber das Problem ich weiß nicht wie ich das schreiben soll das die textboxen zur Berechnung herangezogen werden.
Einen beispiel code habe ich hier schon gesehen der wie folgt aussieht:
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { textBox2->Text = (((Convert::ToDouble(textBox1->Text) * 9) / 5.0) + 32).ToString(); }
ich habs so versucht aber das klappt nicht:
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { textBox8->Text = (((Convert::ToDouble(textBox3->Text) - (textBox2->Text) * (textBox1->Text) / 1000) * 147.1) / 40.1).ToString(); }
Was mach ich denn falsch? Danke schonmal für eure Hilfe.
LG Matze
-
Matzaton schrieb:
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { textBox8->Text = (((Convert::ToDouble(textBox3->Text) - (textBox2->Text) * (textBox1->Text) / 1000) * 147.1) / 40.1).ToString(); }
Was mach ich denn falsch? Danke schonmal für eure Hilfe.
(((Double - String * String / 1000) * 147.1) / 40.1)
ich hoffe das hilft Dir ... schau Dir am besten nochmal das Beispiel an
-
Hi und danke Mogel,
aber nee ich raffs nicht.
Habs probiert aber ich glaub ich scheitere schon an Strings
hatte ja zwischenzeitlich weiter im google gesucht und folgendes Probiert aber das geht auch nicht.
int _zahl1 = Convert::ToInt32(textBox1->Text); int _zahl2 = Convert::ToInt32(textBox2->Text); int _zahl3 = Convert::ToInt32(textBox3->Text); textBox8->Text = ((Convert::ToString(_zahl3 - _zahl2 * _zahl1 / 1000) *147.1) / 40.1);
Ich glaub ich bräuchte ein beispiel wie das mit werten aus verschiedenen textboxen aussieht die berechnung.
LG Matze
EDIT: also in meiner PHP ist es folgendermaen aufgebaut nur den Code kann ich so ja nicht übernehmen
$ist_xy = $_POST['ist_xy']; $soll_xy = $_POST['soll_xy']; $becken_xy = $_POST['becken_xy']; $defizit1 = $soll_xy - $ist_xy; $defizit_xy = $defizit1 * $becken_xy / 1000; $ch = round($defizit_xy * 147.1 / 40.1, 2);
-
int _zahl1 = Convert::ToInt32(textBox1->Text); int _zahl2 = Convert::ToInt32(textBox2->Text); int _zahl3 = Convert::ToInt32(textBox3->Text);
na ist doch schonmal super
textBox8->Text = ((Convert::ToString(_zahl3 - _zahl2 * _zahl1 / 1000) *147.1) / 40.1);
(String * Double) / Double
Ich glaub ich bräuchte ein beispiel wie das mit werten aus verschiedenen textboxen aussieht die berechnung.
wozu? ... Du darfst nur nicht die Datentypen mischen ... und das machst Du permanent
... einfach nochmal tief durchatmen und kurz nachdenken
hand, mogel
-
huh schwere geburt.
ok hab mal nachgedacht und es so gemacht:
int _zahl1 = Convert::ToInt32(textBox1->Text); int _zahl2 = Convert::ToInt32(textBox2->Text); int _zahl3 = Convert::ToInt32(textBox3->Text); textBox8->Text = (((Convert::ToDouble(_zahl3 - _zahl2 * _zahl1) / 1000) * 147.1) / 40.1).ToString();
Wird auch ausgeführt aber die Berechnung ist so falsch. Denn es muss ja erst textbox3 minus textbox2 gerechnet werden dann von diesem ergebnis mal textbox1 dieses ergebnis dann durch 1000 das dann mal 147.1 geteilt durch 40.1
Im beispiel Eingaben textbox1 325 textbox2 300 textbox3 380
wären also 380-300 = 80 * 325 / 1000 * 141.7 / 40.1 ==91.87
sprich auf 2 dezimalstellen müsste man das ergebnis auch noch begrenzen.Ich danke dir schonmal für deine weitere Hilfe!
LG Matze
-
huh ok bin etwas weiter
textBox8->Text = (((Convert::ToDouble(_zahl3 - _zahl2) * _zahl1) / 1000 * 147.1) / 40.1).ToString();puh danke jetzt muss ich nur noch rausfinden wie man auf 2 dezimalstellen rundet
ALSO ganz dickel DANKE
-
Matzaton schrieb:
puh danke jetzt muss ich nur noch rausfinden wie man auf 2 dezimalstellen rundet
schau Dir mal die Klasse Format an
Old-Style wäre das Ergebniss mal 100 - plus 0.5 - Kommastellen abhaken - durch 100 ... dann bleiben (mathematisch) genau 2 Stellen übrig
hand, mogel
-
Hi,
jetzt hab ich schon wieder ein Problem.
Die Berechnung funktioniert zwar aber ich hatte es beim test nur mit ganzen zahlen probiert und jetzt wollte ichs mit einer komma Zahl probieren egal ob als komma komma oder als Punkt, das Programm bricht ab.Aber Warum?
LG Matze
-
Convert::ToInt32 hast du noch wahrschinlich irgendwo im Quelltext stehen.
String
mogel schrieb:
schau Dir mal die Klasse Format an
Fast:
->Text = String::Format("{0:d}", (_zahl3 - _zahl2) * 1.0d * _zahl1 / 1000 * 147.1 / 40.1);
-
Das habe ich schon auf zb.
int _zahl7 = Convert::ToDouble(textBox7->Text);
textBox17->Text = (((Convert::ToDouble(_zahl7 - _zahl6) * _zahl1) / 1000) *19.067).ToString();
geändert dadurch bricht das Programm zwar nicht mehr ab, aber die berechnung mit komma da ignoriert er das komma und statt komma punkt da kommen vollkommen abstrakte werte raus.
-
/ 1000
da werden die Kommas gleich wieder abgeschnitten ... wenn Du mit Kommas benötigst, dann musst DU auch darauf achten das Kommas erhalten bleiben
hand, mogel