----- Original Message ----- From: "Paritosh Patel" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Thursday, June 15, 2006 9:51 PM
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


Try this
   $ytenint = int(($sumy*10) . '.0'); # connect string '.0' to number
or this
   $ytenint = int( '' . ($sumy*10)); # connect empty string and number

Both work as expected but for C programmers this is crazy :-)

Petr Vileta, Czech republic
(My server rejects all messages from Yahoo and Hotmail. Send me your mail from another non-spammer site please.)


_______________________________________________
ActivePerl mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to