SmartPascal
NaN
Constant
Not a real number Math unit
  const NaN = 0.0 / 0.0;
Description
The NaN constant provides a standard undetrmined number value for assigning to floating point variables.
 
It allows the floating point number to be treated as unassigned.
Related commands
Infinity Floating point value of infinite size
IsInfinite Checks whether a floating point number is infinite
IsNaN Checks to see if a floating point number holds a real number
 
Example code : Assign NAN to a number and then test using IsNaN
// Full Unit code.
// -----------------------------------------------------------
// You must store this code in a unit called Unit1 with a form
// called Form1 that has an OnCreate event called FormCreate.
 
unit Unit1;
 
interface
 
uses
  Math,   // Unit containing the NaN command
  SysUtils,
  Forms, Dialogs;
 
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  end;
 
var
  
Form1: TForm1;
 
implementation
{$R *.dfm} // Include form definitions
 
procedure TForm1.FormCreate(Sender: TObject);

var
  float : Double;

begin
  // Set the number to an invalid number
  float := NaN;     // Equivalent to 0.0/0.0

  // Although an invalid number, we can still display it
  ShowMessage('float = '+FloatToStr(float));

  // And we can test to see if it is a valid number
  if IsNaN(float)
  then ShowMessage('float is not a number')
  else ShowMessage('float = '+FloatToStr(float));
end;
 
end.
Hide full unit code
   float = NAN
   float is not a number