[Israel.pm] perl arithmetic
Jason Friedman
jason.friedman at weizmann.ac.il
Sun Apr 18 08:25:08 PDT 2004
The problem with
perl -e 'print int 100*4.56, "\n";'
is the use of the function int.
int takes the integer part and drops the rest
(ie it rounds down to the nearest integer (if it is positive), or up to
the next integer if it is negative)
that means that 455.999999999 which may be the answer to this problem
using floating point arithmetic will become 455. The answer is not to use
the function int.
In this case the solution is simply to drop the int.
perl -e 'print 100*4.56, "\n";'
gives me the right answer. There are also packages on CPAN specifically
for dealing with currency to prevent these sort of issues.
Jason
> sorry guys, but on my perl 5.8.1:
> perl -e 'print int 100*4.56, "\n";'
>
> gives me:
> 455
>
More information about the Perl
mailing list