function SelfSum(const V : int64) : integer; overload;
var N : int64;
begin
N := abs(V);
result := 0;
while N > 0 do
begin
result := result + (N mod 10);
N := N div 10;
end;
end;
function SelfSum(const V : extended) : integer; overload;
var S : string;
L,N : integer;
const
CTN : array['0'..'9'] of byte = (0,1,2,3,4,5,6,7,8,9);
begin
S := FloatToStrF(V,ffFixed,20,22);
result := 0;
N := 1;
L := Length(S);
while N <= L do
begin
if S[N] in ['0'..'9'] then
begin
result := result + CTN[ S[N] ];
end;
N := N+1;
end;
end;