program ExtractFirstDigit;
function GetFirstDigit(num: Double): Integer;
var
s: string;
i: Integer;
begin
{ Handle negative numbers }
num := Abs(num);
{ Convert number to string }
Str(num:0:6, s); { format with 6 decimal places }
{ Scan string for first digit }
for i := 1 to Length(s) do
begin
if (s[i] >= '0') and (s[i] <= '9') then
begin
GetFirstDigit := Ord(s[i]) - Ord('0');
Exit;
end;
end;
{ Error case }
GetFirstDigit := -1;
end;
var
value: Double;
firstDigit: Integer;
begin
value := 48724.928;
firstDigit := GetFirstDigit(value);
writeln('First digit: ', firstDigit);
firstDigit := GetFirstDigit(0.9761);
writeln('First digit: ', firstDigit);
end.
(*
run:
First digit: 4
First digit: 0
*)