Logo

Programming-Idioms

This language bar is your friend. Select your favorite languages!
  • Pascal

Idiom #270 Test for quiet or signaling NaN

Given a floating point number r1 classify it as follows:
If it is a signaling NaN, print "This is a signaling NaN."
If it is a quiet NaN, print "This s a quiet NaN."
If it is not a NaN, print "This is a number."

uses sysutils;
  if r1.IsNan then
  begin
   if (TDoubleRec(r1).Data and $4000000000000000) = $4000000000000000 then
     writeln('This is a quiet NaN')
   else
     writeln('This is a signalling NaN');
  end
  else
    writeln('This is a number: ',r1);
if (r1.isNaN) {
  print("This is a quiet NaN.");
} else {
  print("This is a number.");
}

Dart has no concept of signaling NaN. NaN are all quiet AFAIK.

New implementation...
< >
tkoenig