fork download
  1. #!/usr/bin/perl
  2.  
  3. # Idiom #270 Test for quiet or signaling NaN
  4.  
  5. use POSIX qw(:nan_payload nan isnan issignaling setpayload);
  6.  
  7. my @r = (nan, nan, 1.234);
  8.  
  9. setpayloadsig $r[1],'999';
  10.  
  11. foreach my $r1 ( @r ) {
  12. if ( isnan $r1 ) {
  13. printf "This is a %s NaN\n",
  14. issignaling($r1) ? 'signaling' : 'quiet';
  15. } else {
  16. printf "This is not a NaN: %s\n", $r1;
  17. }
  18. }
  19.  
Success #stdin #stdout 0.02s 7076KB
stdin
Standard input is empty
stdout
This is a quiet NaN
This is a signaling NaN
This is not a NaN: 1.234