Round float24

Andrej Jancura aj.hwlist na gmail.com
Středa Únor 13 14:25:51 CET 2013


Dobry den,

takze problem je v reprezentacii cisiel v pamati. 127,67383 a
127.67000. 12767000 sa da dostat presne len v type int, resp. long
int. Z cisla 127,67383 sa k tomu da dopracovat tak, ze pouzijete
funkciu ceil() a este nejaka podobna. Jedna Vam vrati celu cast float
a druha desatinne miesta. Potom to treba uz len dorobit tak ako to
potrebujete. Round na to asi nebude vhodna cesta. Su to standartne
funkcie math.h, takze pozrite do zdrojakov. Ja si to uz presne
nepamatam, takze to tak nemusi byt, ale pozrite si math.h. Okrem toho
microchip mal svojho casu app. note s matematickymi rutinami pre pic,
v nazve math. routines in ieee754 ci cosi take. Tam by mohlo byt tiez
nieco k danej teme.

A.

2013/2/13 Hfmcons <hfmcons na gmail.com>:
> Zdravím,
> potřeboval bych v XC8 nebo Hi-Tech zaokrouhlit float24
> číslo(proměnnou) 127,67383 na 127,67000. A´t dělám co dělám, výsledkem
> je vždy nějaká modifikace původního čísla(na všech pozicích za
> desetinnoum tečkou jsou nějaké hodnoty). Zkoušel jsem kde co i
> konverze round(float) pak do int a zpět do float atd. Co jsem tak
> ještě nezkoušel je modf(), protože na malých MCU jsou operace s FP
> zbytečným plýtváním a tak potřebné radši přepisuju do celých čísel.
> Přesto by mně zajímalo, proč to zaokruhlení nefunguje. Manuály k oběma
> kompilérům žádné omezení, pokud jsem něco nepřehlédl, při práci s
> float24 nepopisují. Vidím to na nějaké přehlédnutí některé vlastnosti,
> ale nedaří se mi k tomu nic dohledat, byl by někdo ochotný tohle
> objasnit?
> S pozdravem,
> Miloš Dašek
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list