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

Reply via email to