php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #20365 the modulo operator % doesn't work with negative integers!
Submitted: 2002-11-11 09:40 UTC Modified: 2002-11-11 11:51 UTC
From: Ernest at Beinrohr dot sk Assigned:
Status: Not a bug Package: Math related
PHP Version: 4.2.2 OS: linux
Private report: No CVE-ID:
 [2002-11-11 09:40 UTC] Ernest at Beinrohr dot sk
PHP's modulo operator cannot work with negative numbers. The positive ones work fine, but modulo is defined also on negatives ;-)


ex:  10%3  = 1  [php gives 1]
     -4%10 = 6  [php gives NULL] 

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-11-11 09:51 UTC] derick@php.net
Works fine (it should output -4):

[derick@kossu derick]$ php
<?php
$a = -4 % 10;
var_dump($a);
?>
int(-4)

Please provide a short script that reproduces this problem.

Derick
 [2002-11-11 09:53 UTC] sniper@php.net
Please try using this CVS snapshot:

  http://snaps.php.net/php4-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php4-win32-latest.zip

works fine here too..(with 4.3.0-dev) so try the snapshot.

 [2002-11-11 11:09 UTC] Ernest at Beinrohr dot sk
Yes, you are right, the output is not NULL, it's -4. 

BUT, it should be 6. 


PS: but bc gives -4 too, now I do not understand. I suppose, BC is wrong too. It should be 6. [ -4=6 (mod 10) ]
 [2002-11-11 11:51 UTC] derick@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

No, it should be -4. If even BC says it who are we to go into that?
 
PHP Copyright © 2001-2014 The PHP Group
All rights reserved.
Last updated: Wed Apr 23 14:02:33 2014 UTC