in reply to Re: Rounding error?
in thread Rounding error?

I'm surprised by your comment, not by the output, seeing as that prints 2 and 3 for me.

ActivePerl 5.6.1
ActivePerl 5.8.0

If it did give 2 for both, I'd be asking: "Can someone explain the sense of a rounding where the following prints 19, not 20:"

$sum += sprintf("%.0f", $_/10) foreach (0..19); print($sum, $/);

Replies are listed 'Best First'.
Re^3: Rounding error?
by bmann (Priest) on Oct 19, 2004 at 03:08 UTC
    That's strange. Here's the version of perl I ran it on originally

    C:\>perl -v This is perl, v5.8.4 built for MSWin32-x86-multi-thread (with 3 registered patches, see perl -V for more detail) Copyright 1987-2004, Larry Wall Binary build 810 provided by ActiveState Corp.

    I just ran it on 5.8.4 on debian - then 5.00503, 5.8.2 and 5.8.5 on FreeBSD. All versions round both 1.5 and 2.5 to 2

    Does anyone else get something different?

    for ($i=0;$i<10;$i+=.5){ printf "%.1f: %.0f\n", $i, $i; } __END__ Output: 0.0: 0 0.5: 0 1.0: 1 1.5: 2 2.0: 2 2.5: 2 3.0: 3 3.5: 4 4.0: 4 4.5: 4 5.0: 5 5.5: 6 6.0: 6 6.5: 6 7.0: 7 7.5: 8 8.0: 8 8.5: 8 9.0: 9 9.5: 10