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

Re: Rechengenauigkeit von float Variablen Kategorie: Verschiedenes (von PeterS - 8.04.2009 17:52)
Als Antwort auf Rechengenauigkeit von float Variablen von ThomasJ - 8.04.2009 16:00

> Hallo,
>
> Ich setze die IDE 1.71 ein
> Bei der Aufsummierung einer Floatvariablen habe ich das folgende Problem
>
> Var=1.0;
> Var=Var+0.1;
>
> Ausgabe bei 6.1     beträgt 6,09999
>
> Bereits die Abfrage if (Var==2.0) funtioniert nicht mehr.
>
>
> Gibt es irgend eine Abhilfe z.B. Runden nach jeder Rechenoperation auf die entsprechende Genauigkeit ?

Schau mal in die Wikipedia zu Gleitkommarithmetik:

"Schon einfache Dezimalzahlen, z. B. 0,1, können nicht mehr exakt als binäre Gleitkommazahlen
dargestellt werden, da viele im Dezimalsystem abbrechende Kommazahlen im Binärsystem nicht
abbrechende, periodische Zahlen sind ...."

Die neue Beta Version hat eine Rundungsfunktion. Allerdings kann man die Genauigkeit nicht angeben.
Daher im Zweifelsfall mit der Genauigkeit multiplizieren und dann runden. Falls möglich 16Bit Integer
nehmen und mit Festkommaarithmetik arbeiten.

Gruss Peter

>
> Im voraus vielen Dank für Eure Vorschläge
>
> Thomas
>


    Antwort schreiben


Antworten: