in reply to bignum frustration

Hello not_japh, and welcome to the Monastery!

#! perl use strict; use warnings; use bignum; my $foo = 1_234_500_000_000_000_000_000_000.6789; my $bar = int $foo; my $baz = $foo - $bar; print 'baz = ', $baz, "\n";

Output:

baz = 0.6789

Often, the simplest solution is also the best. ;-)

Update: Added greeting.

Athanasius <°(((><contra mundum

Replies are listed 'Best First'.
Re^2: bignum frustration
by Anonymous Monk on Aug 16, 2012 at 14:38 UTC

    How can you be >0.5 away from the nearest integer?

      Finding the nearest integer is still easy with just the int function:

      #! perl use strict; use warnings; use bignum; while (my $num = <DATA>) { chomp $num; print 'float = ', $num, ', nearest int = ', int ($num + 0.5), "\n" +; } __DATA__ 12345.6789 1_234_500_000_000_000_000_000_000.6789 10.49 11.5 12.500000001 1_234_500_000_000_000_000_000_042.499999 13

      Output:

      float = 12345.6789, nearest int = 12346 float = 1_234_500_000_000_000_000_000_000.6789, nearest int = 12345000 +00000000000000001 float = 10.49, nearest int = 10 float = 11.5, nearest int = 12 float = 12.500000001, nearest int = 13 float = 1_234_500_000_000_000_000_000_042.499999, nearest int = 123450 +0000000000000000042 float = 13, nearest int = 13

      :-)

      Athanasius <°(((><contra mundum