SRL Archive - SRL Archives

NumCom() makes numbers like 1000000 look like 1,000,000


Ron

2006-12-31 17:38:17

NumCom() makes numbers like 1000000 look like 1,000,000

Function code:

// Converts an extended number to a string.
// Made by Ron and Ron's Dad.
function NumCom(Number: Extended): string;
var
Num, b: string;
i, c: Integer;
begin
Num := FloatToStr(Number);
if (Number < 0) then
delete(Num, 1, 1);
b := Num;
if (Length(Num) > 3) then
begin
c := (Length(Num) / 3) - 1;
if (Length(Num) > 15) then
c := c - 1;
if (Length(b) mod 3 = 0) then
c := c - 1;
for i := 0 to c do
if (i = 0) then
insert(',', b, Length(b) - 2)
else
insert(',', b, Length(b) - (2 + 4*i));
end;
if (Number < 0) then
insert('-', b, 1);
Result := b;
end;

Test function code:

program New;

const
TheNum = 1000000000;

function NumCom(Number: Extended): string;
var
Num, b: string;
i, c: Integer;
begin
Num := FloatToStr(Number);
if (Number < 0) then
delete(Num, 1, 1);
b := Num;
if (Length(Num) > 3) then
begin
c := (Length(Num) / 3) - 1;
if (Length(Num) > 15) then
c := c - 1;
if (Length(b) mod 3 = 0) then
c := c - 1;
for i := 0 to c do
if (i = 0) then
insert(',', b, Length(b) - 2)
else
insert(',', b, Length(b) - (2 + 4*i));
end;
if (Number < 0) then
insert('-', b, 1);
Result := b;
end;

begin
ClearDebug;
WriteLn(NumCom(TheNum));
end.

~Ron