В этом плане вирт навел порядок в новой версии Оберона, запретив в принципе автоматическое преобразование типов. Так то он и длинные типы убрал и короткие. Но вот скажем явно надо приводить типы целые к действительным или действительные к целым. Так что невозможно применить операцию "/" к целым числам, например. Надо сначала перевести его в действительное.

## Код:
```
VAR i: INTEGER; b: REAL;
BEGIN
i  := 50;
b := FLT(i) / 5.0;
```


В Компонентном Паскале не так строго. Но из-за этого надо держать такие преобразования в голове. Еще и преобразования длинных типов иметь в виду, то с чем вы столкнулись. Но это всё равно намного легче, чем в языках с повсеместным преобразованием всего во всё.