fork(1) download
  1. #!/usr/bin/env perl
  2. use strict;
  3. use warnings;
  4. my $finish = shift || 2.0;
  5. my $format = shift || '%.17g';
  6. die if +$finish == 0;
  7. my $d = $finish / 2;
  8. my $f = $d;
  9. for (0..53) {
  10. my $s = '' . $d;
  11. die sprintf "0+'$s' != $format", $d if +$s != $d;
  12. print sprintf "%s = $format\n", $s, $d;
  13. last if $d == $finish;
  14. $f /= 2, $d += $f
  15. }
  16.  
Runtime error #stdin #stdout #stderr 0s 6176KB
stdin
Standard input is empty
stdout
1 = 1
1.5 = 1.5
1.75 = 1.75
1.875 = 1.875
1.9375 = 1.9375
1.96875 = 1.96875
1.984375 = 1.984375
1.9921875 = 1.9921875
1.99609375 = 1.99609375
1.998046875 = 1.998046875
1.9990234375 = 1.9990234375
1.99951171875 = 1.99951171875
1.999755859375 = 1.999755859375
1.9998779296875 = 1.9998779296875
1.99993896484375 = 1.99993896484375
stderr
0+'1.99996948242188' != 1.999969482421875 at prog.pl line 11.