Hola.
Fijate si te sirve de este modo:
Código Delphi
[-]
function DigitAtPos(Number: LongInt; Position: Byte): Integer;
var
len: Integer;
begin
Number := Abs(Number);
len := Trunc(ln(Number)/ln(10))+1;
if (Number = 0) or (Position <= 0) or (Position > len) then
Result := -1
else
begin
Position := len - Position + 1;
Result := Number div Trunc(Exp(Ln(10)*(Position-1))) mod 10;
end;
end;
Uso:
Código Delphi
[-]
...
Writeln(DigitAtPos(-1248935, 6));
Saludos