Počítání sumy malých přírůstků

► Počítám sumu malých přírůstků (0.001), je-li hodnota sumy < 8192, je vše v pořádku, ale dojde-li k překročení této meze, přestane se obsah sumy zvětšovat. V čem je chyba?

Jestliže počítáte SUMA = SUMA + PRIRUSTEK a proměnná SUMA je typu FLOAT, pak je třeba si uvědomit, že sice maximální možné číslo proměnné SUMA je 3,4e38, avšak vzhledem k tomu, že toto číslo je uloženo v exponenciálním tvaru, je samotné číslo uloženo pouze na 23 bitech, 8 bitů je použito pro exponent a jeden bit pro znaménko.
Pokud tedy k hodnotě SUMA = 8388608 2^23+1) přičtete PRIRUSTEK = 1, nastane situace, kdy SUMA a SUMA + PRIRUSTEK jsou si rovny a přičítání se nijak neprojeví. Podobně je tomu i v případě, že PRIRUSTEK = 0,001. SUMA se "zastaví" na hodnotě 8192. Pro PRIRUSTEK = 0,1 je pak maximální SUMA = 524288 atd. (Pomůcka od AMiTu)