Falsches Ergebnis trotz richtiger Formel

Anubis05

Mitglied
Hallo Leute!

Ich brauche jetzt einfach wieder eure Hilfe.

Ich habe zwei Pools erzählt, wo es mir immer unterschiedliche Zahlen rausholt. Denen habe ich jeweils eine Variable zugewiesen und kann damit ganz einfach eine Formel machen. Das funktioniert alles perfekt, nur kommt es immer wieder vor, dass es bei einer bestimmten Kombination (zB 180 und 3) das richtige Ergebnis nicht erkennt. Bei allen anderen schon.

Was könnte das sein? Wenn ich die Zahlenreihenfolge im pool ändere, kommt der Fehler eben bei einer anderen Kombination.

Mfg
Anubis
 
Ohne Sourcecode und ohne Berechnung kann man dir bei dieser Frage leider nicht helfen. Eventuell postest du den relevanten Sourcecode und beschreibst auch nochmal genau wann wie wo der Fehler auftritt.
 
Also ich poste euch mal den relevanten Code in der Hoffnung, dass ihr mir helfen könnt.

Code:
		static string[] Zahlen1 = 
			{									// Pool für Prozentangaben wird erstellt
				"2","3","4","5","6","7","8","9","10","20","30","40","50","60","70","80","90"				
			}; 
		static string [] Zahlen2 =
			{									// Pool für Grundwertangaben wird erstellt
				"10","100","1000","10000",
				"20","200","2000","20000",
				"30","300","3000","30000",
				"40","400","4000","40000",
				"50","500","5000","50000",
				"60","600","6000","60000",
				"70","700","7000","70000",
				"80","800","8000","80000",
				"90","900","9000","90000"
			};

Dasist der Code vom Angabe-Button:

Code:
public void neueAngabe_Click(object sender, System.EventArgs e)
		{									                                string pool11,pool12,pool13,pool14,pool15;

			Random generator1 = new Random();			
			pool11=Zahlen1[generator1.Next(0,17)];
			pool12=Zahlen1[generator1.Next(0,17)];
			pool13=Zahlen1[generator1.Next(0,17)];
			pool14=Zahlen1[generator1.Next(0,17)];
			pool15=Zahlen1[generator1.Next(0,17)];

			string pool21,pool22,pool23,pool24,pool25;
			
                                                Random generator2 = new Random();
			pool21=Zahlen2[generator2.Next(0,36)];
			pool22=Zahlen2[generator2.Next(0,36)];
			pool23=Zahlen2[generator2.Next(0,36)];
			pool24=Zahlen2[generator2.Next(0,36)];
			pool25=Zahlen2[generator2.Next(0,36)];


--> zuweisen der Pools ins Feld
			Prozent1.Text=Convert.ToString(pool11);	
			Prozent2.Text=Convert.ToString(pool12);
			Prozent3.Text=Convert.ToString(pool13);
			Prozent4.Text=Convert.ToString(pool14);
			Prozent5.Text=Convert.ToString(pool15);

			Grundwert1.Text=Convert.ToString(pool21);
			Grundwert2.Text=Convert.ToString(pool22);
			Grundwert3.Text=Convert.ToString(pool23);
			Grundwert4.Text=Convert.ToString(pool24);
			Grundwert5.Text=Convert.ToString(pool25);
		}

Und das hier ist der Code beim Kontrolle-Button:

Code:
              try	
		{
				double eingabe1D;
				eingabe1D=Double.Parse(eingabe1.Text);
				double Prozent1D;
				Prozent1D=Double.Parse(Prozent1.Text);
				double Grundwert1D;
				Grundwert1D=Double.Parse(Grundwert1.Text);
				
				if
				(eingabe1D == Grundwert1D*(Prozent1D/100))
				{
					kreuz1.Visible=false;
					haken1.Visible=true;
					eingabe1.ReadOnly=true;
				}
				else
				{
					eingabe1.Text= "";
					kreuz1.Visible=true;
					haken1.Visible=false;
				}
			}
			catch (System.FormatException)
			{
				eingabe1.Text="";
				kreuz1.Visible=true;	
				haken1.Visible=false;
			}

kreuz1 bzw. haken 1 sind grafiken, die neben den Rechnungen angezeigt werden. haken bei richtig, kreuz bei falsch oder wenn man Buchstaben oder Sonderzeichen eingibt.

Mfg Anubis
 
Zuletzt bearbeitet:
naja, anscheinend kann mir dabei niemand weiterhelfen.

Dann stelle ich einfach meine zweite Frage auch noch hier rein. Ich habe einen Button auf einer Windows Form und möchte beim Klicken auf den Button ein PDF-File öffnen, das bereits besteht. Wie muss ich das machen, wenn jetzt angenommen die pdf-file "text1.pdf" lautet?

Ich wäre für eine rasche Antwort dankbar.

Gruß
Anubis
 
Hi.

Um jetzt mal dein aktuelleres Problem zu lösen:

Wennst die PDF Datei Standardprogramm öffnen willst, genügt ein

C#:
System.Diagnostics.Process.Start("blabla.pdf");

Das andere werd ich mir wahrscheinlich gleich mal durchlesen.

Edit:

Habs mir jetzt mal nachgebaut und angesehen. Probleme gibts bei dir wohl auch nur dann, wenn das Ergebnis keine Ganzzahl ist! Da musst du auf das Dezimal-Trennzeichen und die Ländereinstellung achtgeben. Also so wie es bei uns üblich ist "0,2" eingeben und nicht "0,2".
 
Alexander Schuc hat gesagt.:
Hi.

Um jetzt mal dein aktuelleres Problem zu lösen:

Wennst die PDF Datei Standardprogramm öffnen willst, genügt ein

C#:
System.Diagnostics.Process.Start("blabla.pdf");

Erstmal Danke, aber das funktioniert bei mir nicht!
Ich habe die PDF-File in die Projektmappe als "vorhandenes Element hinzufügen" hinzugefügt und wenn ich das jetzt so mache, wie du geschrieben hast, findet er die Datei nicht!
 
MFC openGL hat gesagt.:
Kannst du mir mal für dumme den Unterschied zwischen den von dir angegebenen Formaten erklären ? Also bei mir sind die beide gleich....

Ich vermute er hatte sich nur verschrieben und meinte einmal Punkt und einmal Komma: 0,2 und dann 0.2

"System.Diagnostics.Process.Start" öffnet Dateien, die auf der Festplatte sind.
Du musst die PDF-Datei also neben der Exe-Datei auf der Festplatte speichern.

Wenn du das aber nicht möchtest, dann kannst du die Datei als Ressource in der Exe-Datei integrieren. Da kenne ich mich bei .Net aber noch nicht aus....
 
Ich denke nicht, dass es am Trennzeichen liegt, denn überall anders funktioniert es ja...die Probleme gibt es ja nur bei 2-3 Zahlen wie zB 1,8 aber auch bei einer ganzen Zahl wie 210.
 
Ja, meinte einmal "0.2" und "0,2" wobei, "0,2" die richtige Variante wäre. Hättest dir aber glaub ich denken können MFC...

Das mit dem Trennzeichen ist mir als erstes eingefallen als mögliche Fehlerquelle, du kannst aber gerne selbst debuggen. Setz einfach mal einen Breakpoint beim Vergleich der Zahlen und vergleiche das eingegebene Ergebnis mit dem Berechneten.

Zur pdf. Hast du nach dem Hinzufügen bei den Eigenschaften der Datei auf "eingebettete Resource gestellt" oder verteilst du die Datei direkt in deiner Ordnerstruktur?

Übrigens, wenn du das Projekt erstellst, wird die Datei nicht ins Ausgabeverzeichnis kopiert. Das musst selbst machen, zum Beispiel über ein PostBuild-Ereignis. Bei VisualStudio 2005 gäbs eine Eigenschaft "Copy to Output Directory" die das für dich erledigen würde.

Vielleicht stimmt also einfach nur der Pfad nicht. (Weil die Datei noch im Verzeichnis mit dem Sourcecode ist..)
 

Neue Beiträge

Zurück