Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Rundungsfehler bei Floatoperationen? Kategorie: Programmierung Basic (von Montelucon - 30.11.2008 10:38)
Ich nutze:
C-Control Pro Mega32, CC-Pro 32 Application Board
Hallo,

leider eine mega groÃ?es Problem.

Ich habe eine Uhr realisiert, die leider bereits nach sehr kurzer Zeit immer ungenauer wird.
Am Anfang dachte ich es liegt an der Taktfrequenz die durch einen ungenauen Quarz abweicht.
Doch es scheint an Rundungsfehlern zu liegen.

Beispiel:
-------------------------------------------------------------------------------------------------------------
Dim test As Single
Dim hochrunter As Single
Dim schrittweite As Single

Sub main()
       test = 35.0
       hochrunter = -1.0
       schrittweite = 0.2

      Do While 1
           rechne()
      End While
End Sub

Sub rechne()
       test = test + (hochrunter * schrittweite)
End Sub
-------------------------------------------------------------------------------------------------------------

Das Ergbnis ist leider nicht wie erwartet:

test = 34.80000
test = 34.60000

sondern

test = 34.79999
test = 34.79998
usw.

Was mache ich falsch, bzw. was kann ich machen um den Fehler zu beheben?


GruÃ?

Monte




    Antwort schreiben


Antworten:

Re: Rundungsfehler bei Floatoperationen? (von PeterS - 30.11.2008 23:02)
    Re: Rundungsfehler bei Floatoperationen? (von Montelucon - 1.12.2008 0:33)