Программа на pascal не работает
Имеем программу:
var
a, b :real;
function dg0(a, b : real) : real;
var
dg : real;
f, r : longint;
begin
r := 1;
repeat
a := a * b;
f := trunc(a);
dg := dg + f * r;
until a - trunc(a) = 0;
writeln(dg);
dg0 := dg;
end;
begin
readln(a, b);
writeln(dg0(a, b));
writeln('Нажмите Enter для выхода из программы');
readln;
end.
Переводящая дробную часть десятичного числа а в систему счисления с основанием b. На 12 строчке ( f := trunc(a);) выдает ошибку:
Pattern.pas(12) : Ошибка времени выполнения: Значение было недопустимо малым или недопустимо большим для Int32.
Прошу объяснить, в чем ошибка
f, r : integer пробовал, та же ошибка