DESCRIPTION Returns the integer portion of EXPR. If EXPR is omitted, uses $_. You should not use this for rounding, because it truncates towards 0, and because machine representations of floating point numbers can sometimes produce counterintuitive results. Usually sprintf() or printf(), or the POSIX::floor or POSIX::ceil functions, would serve you better.
-----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Paritosh Patel Sent: Thursday, June 15, 2006 3:51 PM To: [email protected] Subject: Unexpected results from the int() function I am using ActiveState Perl and I am getting interesting results with I use the int() function. Essentially, I get different results as in the following. Is this normal for Perl? I have narrowed my code to the following simple scenario: my $a = 31.0; my $b = 1.8; my $c = 2.9; my $sumy = $a + $b + $c; # $sumy = 35.7 my $yten = $sumy * 10; my $ytenint = int($sumy*10); print "x = " . $yten . " \n"; # output> 357 print "xint = " . $ytenint . " \n"; # output> 356 The output is: x = 357 xint = 356 There is some rounding going on which is not intuitive. I am a C/C++ programmer and am surprised at the output. What should I be using? - Tosh _______________________________________________ ActivePerl mailing list [email protected] To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs _______________________________________________ ActivePerl mailing list [email protected] To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
