Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
16.12.2010 11:14:36 |
Denny |
|
|
|
16.12.2010 14:02:58 |
Severus |
|
|
|
16.12.2010 16:21:23 |
Holger |
|
|
|
16.12.2010 16:45:33 |
Severus |
|
|
Aw:Aw:Aw:Aw:Kuriose Nachkommazahlen |
16.12.2010 18:20:06 |
Holger |
|
|
|
16.12.2010 15:01:37 |
Severus |
|
|
|
16.12.2010 16:43:24 |
Denny |
|
|
Von:
Holger |
Datum:
16.12.2010 18:20:06 |
Views:
932 |
Rating:
|
Antwort:
|
Thema:
Aw:Aw:Aw:Aw:Kuriose Nachkommazahlen |
Hallo Severus,
der Grund für das Verhalten ist doch simpel. Zahlen, die im Dezimalsystem endlich viele von Null verschiedene Nachkommastellen haben, brauchen das in anderen p-adischen Entwicklungen nicht zu haben und umgekehrt. Kleine Abweichungen sind nicht zu vermeiden. Bei häufiger Addition summieren sich diese bis zu darstellbaren Größen.
Übrigens würde ich das Problem nicht so, sondern nach dem Newtonschen Näherungsverfahren lösen.
Gruß
Holger
Severus schrieb am 16.12.2010 16:45:33:
@Holger: Da hast Du natürlich Recht. Mir ist es eigentlich zuerst darum gegangen den Grund für das Verhalten auszuschließen. Außerdem hat man hier die Möglichkeit über den "Faktor" die Genauigkeit einfach zu ändern.
Severus
Holger schrieb am 16.12.2010 16:21:23:
Ich mische mich nur ungern ein, aber ich glaube, das Problem ist einfacher zu lösen, wenn man nicht direkt mit 0 vergleicht, sondern mit einer kleinen Zahl, die quasi eine Fehlergrenze darstellt, z.B.
if abs(y)<.0000001
Gruß
Holger
Severus schrieb am 16.12.2010 14:02:58:
Es scheint, daß die Schleifenzählung mit Dezimalwerten nicht funktioniert!
Versuche mal
Sub test()
Dim e1 As Double, e2 As Double, e3 As Double, e4 As Double, e5 As Double
Dim a As Double, b As Double, c As Double, d As Double, e As Double, f As Double
Dim x As Double, y As Double, y1 As Double, Polyx As Double
Dim ZeichenFolge As String
e1 = 5#
e2 = 4#
e3 = 3#
e4 = 2#
e5 = 1#
a = 0#
b = 0#
c = 0#
d = 0#
e = 1#
f = 1#
For x = -2000# To 2000# Step 1
y = (a * ((x / 100) ^ (e1))) + (b * ((x / 100) ^ (e2))) + (c * ((x / 100) ^ (e3))) + (d * ((x / 100) ^ (e4))) + (e * ((x / 100) ^ (e5))) + f
If y = 0 Then
Polyx = x
MsgBox ("x Wert für die Polynom Division: ") & Polyx / 100
End If
y1 = y
Next x
End Sub
Severus |
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
16.12.2010 11:14:36 |
Denny |
|
|
|
16.12.2010 14:02:58 |
Severus |
|
|
|
16.12.2010 16:21:23 |
Holger |
|
|
|
16.12.2010 16:45:33 |
Severus |
|
|
Aw:Aw:Aw:Aw:Kuriose Nachkommazahlen |
16.12.2010 18:20:06 |
Holger |
|
|
|
16.12.2010 15:01:37 |
Severus |
|
|
|
16.12.2010 16:43:24 |
Denny |
|
|