Information functions (Float)

Top 

Example code : Sign, IsFinite, IsInfinite, IsNaN, ToString, Clamp

procedure TForm1.W3Button23Click(Sender: TObject);

var

  f : Double;

  amount1, amount2, amount3 : Extended;

begin

WriteLn('Sign -510.825 = '+FloatToStr(Sign(-510.825)));

WriteLn('----------------');

  // Set the number to infinity

  f := Infinity;     // Equivalent to 1.0/0.0

  // Although infinite, we can still display it

  WriteLn('f = '+FloatToStr(f));

  // And we can test to see if it is infinite

  if IsInfinite(f)

  then WriteLn('f is infinite')

  else WriteLn('f = '+FloatToStr(f));

WriteLn('----------------');

 

// Set the number to an invalid number

  f := NAN;     // Equivalent to 0.0/0.0

  // Although an invalid number, we can still display it

  WriteLn('f = '+FloatToStr(f));

  // And we can test to see if it is a valid number

  if IsNaN(f)

  then WriteLn('f is not a number')

  else WriteLn('f = '+FloatToStr(f));

WriteLn('----------------');

 

//Display various sizes of extended data values

  amount1 := 1234.123456789;  // High precision number

  amount2 := 1234.123;       // High mantissa digits

  amount3 := 1E100;                 // High value number

 

  WriteLn('Amount1 = '+FloatToStr(amount1));

  WriteLn('Amount2 = '+FloatToStr(amount2));

  WriteLn('Amount3 = '+FloatToStr(amount3));

 

  WriteLn('Clamp(500, 499, 502) = '+FloatToStr(Clamp(500499502)));

  WriteLn(amount3.Clamp(amount1,amount2));

end;

Sign -510.825 = -1

----------------

f = Infinity

is infinite

----------------

f = NaN

is not a number

----------------

Amount1 = 1234.123456789

Amount2 = 1234.123

Amount3 = 1e+100

Clamp(500, 499, 502) = 500

1234.123 

 

 

mytoggle_plus1JS output

function W3Button23Click(Self, Sender$21) {

      var f$3 = 0;

      var amount1 = 0;

      var amount2 = 0;

      var amount3 = 0;

      WriteLn("Sign -510.825 = -1");

      WriteLn("----------------");

      f$3 = Infinity;

      WriteLn(("f = "+FloatToStr$_Float_(f$3)));

      if (IsInfinite(f$3)) {

         WriteLn("f is infinite");

      } else {

         WriteLn(("f = "+FloatToStr$_Float_(f$3)));

      }

      WriteLn("----------------");

      f$3 = NaN;

      WriteLn(("f = "+FloatToStr$_Float_(f$3)));

      if (isNaN(f$3)) {

         WriteLn("f is not a number");

      } else {

         WriteLn(("f = "+FloatToStr$_Float_(f$3)));

      }

      WriteLn("----------------");

      amount1 = 1234.123456789;

      amount2 = 1234.123;

      amount3 = 1E100;

      WriteLn(("Amount1 = "+FloatToStr$_Float_(amount1)));

      WriteLn(("Amount2 = "+FloatToStr$_Float_(amount2)));

      WriteLn(("Amount3 = "+FloatToStr$_Float_(amount3)));

      WriteLn("Clamp(500, 499, 502) = 500");

      WriteLn(Clamp(amount3,amount1,amount2));

   }