A prekladac ma pomerne volnou ruku, jak stim zachazet - v ramci optimalizace muze ruzne prerovnat i operace a v zavislosti na kontextu muze ten samy zapis dokonce dat i vic ruznych vysledku (podle toho, zda nema treba nakesovane nejake mezivysledky jednou tak a podruhe jinak, podle toho, co tomu predchazelo).
Takze porovnavat realna cisla na rovnost je nesmysl, pokud to potrebujes, tak tam musis zahrnout ten interval, ve kterem zohlednis mozne chyby zaokrouhleni.
Porovnavat realna cisla na nerovnost (ostrou ci neostrou) lze, pokud ti nevadi, ze u dvou blizkych vysledku to muze vyjit spatne. (Ale treba ve hre plokud kilometrovy meteorit mines o 1mm, nebo naopak zasahnes je nerozeznatelne a tedy prakticky jedno. Pri porovnavani hodnoty z potenciometru s konstantou je to diky naindukovanemu sumu a prirozene chybe mereni taky celkem jedno.)
Kdyz to jedno neni, tak muzes pouzit mnohem slozitejsi pristupy, kde pocitas se symboly a provedes si optimalizace sam a definovanym zpusobem, nebo pocitas s cisly v nejakem "mene prirozenem tvaru", napriklad retrezci dekadickych cislic/BCD/objekty, ktere ukladaji i moznou chybu vysledku a pri pretizenych operacich na porovnani ji zohledni, s cisly v presnosti treba stovek cifer a jinymi zhuverilostmi - pokud ti to za to stoji
A samozrejme je dobre rucne prerovnat operace tak, aby se ti chyby hromadily co nejmin - tedy vyhybat se operacim, kde se presnost vyrazne ztraci.
Kód: Vybrat vše
a= 10000*30000+2*3;
b= 10000*30000+2*2;
c=a-b;
Kód: Vybrat vše
a= 10000*30000+2*3;
b= 10000*30000+2*2;
c=2*(3-2);