Hallo, danke für den Tip. Hier für alle die es interessiert nochmal die Lösung aufbereitet:
~~~ Double Value1 = Convert.ToDouble("0,05"); Double Value2 = Convert.ToDouble("0,01"); Double Erg = Value1 + Value2; if(Math.Abs(Erg - Convert.ToDouble("0,06"))<Convert.ToDouble("0,000000000000001")) Console.Write("Equal"); else Console.Write("Not Equal"); ~~~ Hierbei habe ich die maximale Abweichung auf 15 Stellen hinter dem Komma, festgelegt. Ist die Abweichung kleiner als dieser Fix-Wert wird ein Vergleich als 'gleich' betrachtet, wenn nicht dann als 'ungleich'. Den oft im Zusammenhang mit Rundungsabweichungen bei Bruchzahlen angesprochenen Wert 'Double.Epsilon' kann man für dieses Beispiel nicht verwenden, dafür sind die Abweichungen zu groß. gruß, marcus Original Message: ----------------- From: Christoph Wille [EMAIL PROTECTED] Date: Tue, 30 Nov 2004 09:48:11 +0100 To: [EMAIL PROTECTED] Subject: Re: [CSharp.net] Double und Addition Ist die EDV Ausbildung also doch zu was gut ;-) So in etwa sieht das aus: If (Abs(dResult - dExpectedResult) < dDelta) Then Chris At 09:02 AM 11/30/2004, you wrote: >hmm, hab jetzt mal gesucht aber nix gefunden. >Kannst du mir einen Tipp geben, was 'Deltas' sind, bzw. wie man damit eine >Vergleich durchführt. > >danke, >marcus > > >Original Message: >----------------- >From: Christoph Wille [EMAIL PROTECTED] >Date: Tue, 30 Nov 2004 08:48:07 +0100 >To: [EMAIL PROTECTED] >Subject: Re: [CSharp.net] Double und Addition > > >Direktes Double-Vergleichen ist ein no-no; daf�r verwendet man Deltas. > >Chris > >At 08:41 AM 11/30/2004, you wrote: > >Ich habe eine Frage zur Konvertierung und Addition von 'Double' Typen, die > >mir einige Schwierigkeiten bereiten. > > > >Folgender kleiner Code-Ausschnitt: > > > >~~~ > >Double Value1 = Convert.ToDouble("0,05"); Double Value2 = > >Convert.ToDouble("0,01"); > > > >Double Erg = Value1 + Value2; > > > >if(Erg==Convert.ToDouble("0,06")) > > Console.Write("Equal"); > >else > > Console.Write("Not Equal"); > >~~~ > > > >Leider bekomme ich immer 'Not Equal' als Ergebnis da die Variable 'Erg' bei > >der Addition den Wert 0,0600000000000000005 erh�lt, obwohl Value1 und > >Value2 den richtigen Wert enthalten > > > >Wie bekomme ich jedoch nun den wirklichen Wert (0,06) und die korrekte > >Pr�zession, damit dieser Vergleich hier funktioniert? Wo liegt der >Fehler? > > > >Danke f�r jede Hilfe, > >marcus _______________________________________________ CSharp.net Mailingliste, Postings senden an: [EMAIL PROTECTED] An-/Abmeldung und Suchfunktion unter: http://www.glengamoi.com/mailman/listinfo/csharp.net -------------------------------------------------------------------- mail2web - Check your email from the web at http://mail2web.com/ . _______________________________________________ CSharp.net Mailingliste, Postings senden an: [EMAIL PROTECTED] An-/Abmeldung und Suchfunktion unter: http://www.glengamoi.com/mailman/listinfo/csharp.net