Mám následující program:
program desc;
uses crt;
var zacatek, konec, krok, x: double;
begin
clrscr;
zacatek:=-1;
konec:=1;
krok:=0.2;
x:=zacatek;
while x <= konec do begin
x := x + krok;
writeln(x);
end;
readln;
end.
Očekávaný výstup jsou čísla od -1 do 1 po 0.2. Jenže problém je u nuly. Místo toho, aby byla vypsána skutečná nula, je to nějaké číslo krát 10^(-16), čili nějaké hrozně malé číslo. Potřebuji přesná čísla, protože například skutečnou nulou nevydělím, ale tímto číslem ano.
Jak to vyřešit?