GameHunter писал(а):
Вот модуль:
Код:
<* MAIN + *>
<* NOOPTIMIZE + *>
MODULE Main;
IMPORT
  SLongIO;
CONST
  c = 1/3;
VAR
  n:LONGINT;
  x,y:LONGREAL;
BEGIN
  x:=1;
  n:=1;
  y:=n*c*x;
  SLongIO.WriteReal(y,0);
END Main.
На экране должно печататься 1/3 с двойной точночтью. Но печатается только с одинарной. Баг присутствует только при включённой опции NOOPTIMIZE.
y:=x*n*c;
В таком варианте печатает результат с двойной точностью. Видимо, точность результата определяется по первому сомножителю, если вычисление идет слева направо. Имхо.