Nächstgelegene Fixed-Point Zahl zu Floating-Pointzahl bekommen

Gast #2025589
Lesenswert?

indem du beim Zurückrechnen rundest. Das geht z.B. indem man:
int i = round(floatZahl * (1<<FixGenauikeit));
i >>= FixGenauikeit;


Ergibt: round(0.78*8 )= 6  (.24 abgeschnitten);
6 um 3 bit geschiftet ist: 0.110
Das ist die nächst liegende Zahl.

0.82 -> 0.82*8 = 6.56 -> 7;
7 um 3 bit geschiftet ist 0.111
also fixkommatechnisch 0.875 was näher dran ist als 0.75 (bei dieser 
Präzision.)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren