Format Fix64

TheBeginner
Schreiberling
Avatar
Geschlecht: keine Angabe
Herkunft: Wunsiedel Bayern
Alter: 68
Beiträge: 776
Dabei seit: 06 / 2013
Betreff:

Format Fix64

 · 
Gepostet: 07.02.2022 - 11:05 Uhr  ·  #1
Guten morgen. eine kleine Frage an euch, gibts eine Möglichkeit bei der Berechnung
den stellenwert auf 3 nach komma anzugeben ? weil soviel nachkomma stellen brauche ich nicht
149.999086128 das sind ja 9 nachkomme stellen.

tmp:= Fix64SinD(a_winkel);



Gruß Frank
Merlin
Administrator
Avatar
Geschlecht:
Alter: 26
Beiträge: 1476
Dabei seit: 03 / 2005
Betreff:

Re: Format Fix64

 · 
Gepostet: 07.02.2022 - 12:11 Uhr  ·  #2
Hi Frank

You mean for display purposes?

By its very nature a base 2 decimal cannot be represented exactly by a base 10 decimal and vice versa.

==================================================================

Sie meinen zu Anzeigezwecken?

Es liegt in der Natur der Sache, dass eine Dezimalzahl zur Basis 2 nicht exakt durch eine Dezimalzahl zur Basis 10 dargestellt werden kann und umgekehrt.
TheBeginner
Schreiberling
Avatar
Geschlecht: keine Angabe
Herkunft: Wunsiedel Bayern
Alter: 68
Beiträge: 776
Dabei seit: 06 / 2013
Betreff:

Re: Format Fix64

 · 
Gepostet: 07.02.2022 - 12:39 Uhr  ·  #3
Hello Merlin, I didn't want to put 9 after the decimal point in the calculation, 3 is enough for me
I would like the calculation to be faster.


Hallo Merlin, ich wollte bei der Berechnung nicht 9 nach komma stellen haben, mir reichen 3
ich möchte das die berechnung schneller geht.


Gruß Frank
Merlin
Administrator
Avatar
Geschlecht:
Alter: 26
Beiträge: 1476
Dabei seit: 03 / 2005
Betreff:

Re: Format Fix64

 · 
Gepostet: 07.02.2022 - 13:16 Uhr  ·  #4
Hi Frank

Speed won't be affected. A fix64 takes 8 bytes of data. End of story, really. Truncating won't help anything.

====================================================================

die Geschwindigkeit wird nicht beeinträchtigt. Ein fix64 benötigt 8 Bytes an Daten. Das war's eigentlich schon. Abschneiden wird nichts bringen.

Regards
TheBeginner
Schreiberling
Avatar
Geschlecht: keine Angabe
Herkunft: Wunsiedel Bayern
Alter: 68
Beiträge: 776
Dabei seit: 06 / 2013
Betreff:

Re: Format Fix64

 · 
Gepostet: 07.02.2022 - 14:31 Uhr  ·  #5
That's what I wanted to know. Thank you Merlin

Genau das wollte ich wissen. Danke Merlin


Gruß Frank
Avra
Schreiberling
Avatar
Geschlecht:
Herkunft: Belgrade, Serbia
Alter: 54
Homepage: rs.linkedin.com/in…
Beiträge: 653
Dabei seit: 07 / 2002
Betreff:

Re: Format Fix64

 · 
Gepostet: 08.02.2022 - 12:25 Uhr  ·  #6
Zitat geschrieben von Merlin

Speed won't be affected. A fix64 takes 8 bytes of data. End of story, really. Truncating won't help anything.

Absolutelly correct.

However, before fix64 was created and embedded into AvrCo, I have played with 32 bits and arbitrary fixed point math. You might want to check it out (much simpler lib then fix64, but core is similar):
https://community.atmel.com/pr…-point-lib
Arbitrary fixed point means some speed is lost (that is why fix64 has fixed 32 bits for integer part and fixed 32 bits for fractional part), but on the other hand some speed is saved since AVR deals only with 32 bit instead of 64 bit numbers. I did not do any benchmarking, but for complex calc like trigonometry my guess would be that fix32 should be faster. Of course, fix32 range limit is much less then fix64.

For simple fix64 presentation in wanted number of digits, use this function:
Code
function  Fix64ToStrFmt(const a: TFix; const iDig, fDig: byte): TFixString;
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 8 · Cache Hits: 14   106   120 · Page-Gen-Time: 0.018096s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI