Round float24

Hfmcons hfmcons na gmail.com
Středa Únor 13 11:37:17 CET 2013


No, konkrétně mi nefunguje tento kód:
int x = round(127,67383*100);
float y = (int)x; // tady by mělo být v y 12767,00000 ale je 12767,xxxxx
S pozdravem,
Miloš Dašek

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