in reply to Re: bignum frustration
in thread bignum frustration

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

Replies are listed 'Best First'.
Re^3: bignum frustration
by Athanasius (Archbishop) on Aug 16, 2012 at 15:39 UTC

    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