Коллеги,

## Код:
```
PROCEDURE Really*;
      VAR s: SHORTREAL; r: REAL;
   BEGIN s := -0.4523987; r := -0.4523987; Log.Real(s); Log.Char(' '); Log.Real(r)
   END Really;
(* резульат:  -0.4523986876010895  -0.4523987 *)
```


Как я понял, -0.4523987 не может быть выражено в 32-разрядном формате.
В этом случае я бы ожидал от компилятора сообщения об ошибке. Подобно тому, что если i: INTEGER, то i := MAX(INTEGER) + 1 - это ошибка; если sh: SHORTCHAR, то sh := "Я" - тоже ошибка.

Я почти не имею опыта работы с действительными числами. Возможно, я не прав?

В Сообщении про действительные литералы сказано:
> -- Language Report, 3. Vocabulary and representation писал(а):
> A real number is always of type REAL.