[Back to NUMBERS SWAG index]  [Back to Main SWAG index]  [Original]

{
  I recently came across the need For a way to dynamically Format
  Real Variables For output - I came out With the following. (You
  people following the Compiler thread may want this to make your
  Compiler output pretty)

  The routine checks to see how big the exponent is; if it's bigger
  than 1E7 or smaller than 1E-7, an unFormatted conversion is made.
  if the number is less than 1E7 and greater than 1E-7, then a
  Formatted String is created. to make the output prettier, trailing
  zeros, periods and leading spaces are deleted.
}

Function FormatReal(r:Real):String;
Var
  s :String;

begin
  if ((r>1E-7) and (r<1E7))then
    Str(r:12:12, s)
  else
    Str(r, s);

  While s[ord(s[0])]='0' do
    Delete(s, ord(s[0]), 1);
  While (s[1]=' ') do
    Delete(s, 1, 1);
  if s[ord(s[0])]='.' then
    Delete(s, ord(s[0]), 1);

  FormatReal := s;
end;

[Back to NUMBERS SWAG index]  [Back to Main SWAG index]  [Original]