Re: [PHP-DEV] Re: #22527 [Opn->Bgs]: Modulus returned negative value

[email protected] (Rasmus Lerdorf)
Newsgroups php.dev
Message-ID <[email protected]>
Well, Perl can lean the other way as well actually.  Try this:

  use integer;
  print -27%7;

You will see it gives you -6.  Like I said, it comes down to which way you 
truncate.  Programmers tend to think that something like (int)(-3.4) 
should result in -3.  If that is what you expect, then I think you also 
have to expect -27%7 to return -6.  

-Rasmus

On Tue, 4 Mar 2003, George Schlossnagle wrote:

> Interesting.
> 
> I don't know what the ISO standard say, but mathematically a a % b will 
> always return you an integer 0 <= a%b < b (since there are no negative 
> numbers in canonical representation of Z/bZ).  I guess perl/python/tcl 
> ddecided to adhere to the mathematical definition.
> 
> 
> On Tuesday, March 4, 2003, at 02:37  AM, Rasmus Lerdorf wrote:
> 
> > This is actually an interesting question.  Should we be truncating 
> > towards
> > zero?  I'd say yes, but then I tested Perl, Python and Tcl, and they 
> > all
> > say that -27 % 7 is 1 which means they truncate towards negative 
> > infinity.
> 
> 
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.