S tou presnosti vypoctu bych to nevidel tak optimisticky, viz manual k metapostu (nekdo sem daval odkaz) a priklad s cyklem od 0 do 1 a krokem 0.1. Cyklus konci nekde u 0.900005
Jake periodicke cislo? Aha, on metapost pouziva floating point aritmetiku - ale potom je jeho presnost v nejlepsim pripade stejna, jako u programu typu CAD nebo CorelDraw!
It is best to use this feature only when the step size is an integer or some number that can be
represented exactly in fixed point arithmetic as a multiple of 1/65536 . Otherwise, error will accumulate and the loop index might not reach the expected termination value. For instance,
for i=0 step .1 until 1: show i; endfor shows ten i values the last of which is 0.90005.
The standard way of avoid the problems associated with non-integer step sizes is to iterate over
integer values and then multiply by a scale factor when using the loop index as was done in Figures
2 and 40.
Pripadlo me divne, ze se mluvi o presnem vypoctu a pritom to ztroskota na takove kravine. Je cislo 0.1 periodicke?
ano 0.1 je periodická ( v bináru samozřejmě :-) ) Nevidím problém v použití floatů (případně doublů), stačí, když si člověk uvědomuje, jak fungují. A psát cyklus iterující přes float mi přijde jako prasárna...
V kazdem pripade vsak tvrzeni, ze metapost je uz z nejakeho vyssiho principu "presnejsi" nez CADy me take docela prekvapilo (ano, Knuth je nekterymi chapan jako polobuh, takze to vychazi spis z tohoto nazoru). Fixed point s sestnacti bity za binarni teckou je - to si priznejme - z hlediska presnosti nic moc.
Uváděli to jeskyňáři v bulletinu CSTUG (číslo z hlavy neznám), kteří porovnávali mapu pořízenou v CADu a mapu pořízenou v metapostu s realitou.
Je tam totiž jedna finta: ta číselná proměnná se ještě násobí měřítkem; ale k tomu se dostaneme ve 3. dílu.
desetinka sem, desetinka tam... jen se musi pocitat s tim, ze pocitac dela co mu zadate a nemysli za vas...
kdyz vite ze to dela takovedle pitominky, tak zmente pristup... např krok po 1/12 nebo 1/8, nebo uplně jinak...
nebo ne do jedničky ale do 1.0001
skuste si na prstech spočítat faktoriál 200 nebo odmocninu z pí...
používejte nástroje takové jaké jsou k tomu k čemu jsou určené, nebo si je napište lepší... mektání o tom jak je float/fixed špatný si stčte někde...