Re: Ungenauigkeit Double
- From: "Carsten Sekulla" <carsten.sekullaNo@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Tue, 16 May 2006 09:02:13 +0200
Hi Scotty,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)
ich habe (früher 8.bit usw.) bei diesen immer versucht die
Schrittweite ganzzahlig (z.B. 360° ) zu machen und erst zu Berechung das
Bogenmass
zu nutzen. Das gibt nicht diese Dreckeffekte.
Das Problem ist der letzte Durchlauf der bei 1E-10 (o.ä.) nicht 0 ist, also
noch eine Runde.
Also
Dim U As Double = 0
Const a As Double = 1.258
Const b As Double = 1.258
Dim dx As Integer = 1000 ' in dx-tel Grad
Dim dblGrad2Bogen As Double = 4 * Math.Atan(1) / 180 / dx
For i As Integer = 0 To CInt(90 * dx)
U += Math.Sqrt(a ^ 2 * Math.Cos(dblGrad2Bogen * i) ^ 2 + _
b ^ 2 * Math.Sin(dblGrad2Bogen * i) ^ 2) * dblGrad2Bogen
Next
Console.WriteLine(CStr(U) & Space(6) & CStr(a * 4 * Math.Atan(1) /
2))
Console.ReadLine()
geht das ihmo schon ganz gut
.
- Follow-Ups:
- Re: Ungenauigkeit Double
- From: Karsten Sosna
- Re: Ungenauigkeit Double
- References:
- Ungenauigkeit Double
- From: Karsten Sosna
- Re: Ungenauigkeit Double
- From: Joachim Fuchs
- Re: Ungenauigkeit Double
- From: Karsten Sosna
- Ungenauigkeit Double
- Prev by Date: Re: Drehen des Images einer Picturebox?
- Next by Date: Re: ComClass + Events
- Previous by thread: Re: Ungenauigkeit Double
- Next by thread: Re: Ungenauigkeit Double
- Index(es):
Relevant Pages
|