Ungenauigkeit Double
- From: "Karsten Sosna" <k.sosna-NO-SPAM-@xxxxxxxxxxx>
- Date: Mon, 15 May 2006 07:50:56 +0200
Hallo NG,
mir ist bewusst das Zahlen eine eine gewisse Ungenaugkeit besitzen, aber das
empfinde doch schon sehr hoch:
\\\
Dim a As Double =200
Dim b As Double =100
Dim U As Double = 0
Dim dx As Double = 0.00001
For x As Double = 0 To Math.PI / 2 Step dx
U += Math.Sqrt(a ^ 2 * Math.Cos(x) ^ 2 + b ^ 2 * Math.Sin(x) ^ 2) * dx
Next
Console.WriteLine(U)
U = 0
For x As Double = Math.PI / 2 To 0 Step -dx
U += Math.Sqrt(a ^ 2 * Math.Cos(x) ^ 2 + b ^ 2 * Math.Sin(x) ^ 2) * dx
Next
Console.WriteLine(U)
///
Ausgabe:
242,212072834255
242,211440154949
Nach der 2.Nachkommastelle schon Abweichungen??? IMHO schon etwas viel. Habe
es schon mit Decimal probiert, aber das Problem stammt wohl aus dem
Rückgabewert der Math-Methoden. An der CPU wird es nicht liegen, da ich mit
einer AMD genau das gleiche Ergebnis erhalte als wie mit einer Intel-CPU.
Also, 4-5 Stellen hinter dem Komma hätte ich schon gerne. Hat jemand eine
Idee wie ich das erreichen kann? Die Schleifendurchläufe kann ich nicht
erhöhen, dauert so eigentlich schon zu lange(Die Schleifen werden 4 mal im
OnPaint durchlaufen). Leider subtrahiert sich der Fehler um so größer a und
b werden und irgendwann habe ich den vorm Komma. :=(
Hat jemand eine Idee, wie ich das genauer hinbekomme. Bin wirklich für jeden
Tipp dankbar.
--
Gruß Scotty
.
- Follow-Ups:
- Re: Ungenauigkeit Double
- From: Joachim Fuchs
- Re: Ungenauigkeit Double
- From: Thomas Scheidegger [MVP]
- Re: Ungenauigkeit Double
- Prev by Date: Re: Reporte mit VB2005
- Next by Date: Re: Ungenauigkeit Double
- Previous by thread: Zellen im DataGrid je nach Inhalt einfärben
- Next by thread: Re: Ungenauigkeit Double
- Index(es):
Relevant Pages
|