Bug->Doc #53208 [Opn]: Modulo does not calc right (C99 not mathematical correct)

From: Date: Sat, 30 Oct 2010 19:27:34 +0000
Subject: Bug->Doc #53208 [Opn]: Modulo does not calc right (C99 not mathematical correct)
References: 1  Groups: php.doc.bugs 
Request: Send a blank email to doc-bugs+get-5449@lists.php.net to get a copy of this message
Edit report at http://bugs.php.net/bug.php?id=53208&edit=1 ID: 53208 Updated by: cataphract@php.net Reported by: fibrefox at dynamicfiles dot de Summary: Modulo does not calc right (C99 not mathematical correct) Status: Open -Type: Bug +Type: Documentation Problem Package: *Math Functions Operating System: any PHP Version: Irrelevant Block user comment: N New Comment: You are of course right, and this merits a mention in the documentation, but changing the meaning of such a basic operator is a huge BC break. Previous Comments: ------------------------------------------------------------------------ [2010-10-30 19:45:59] fibrefox at dynamicfiles dot de Description: ------------ I found a bug-report that already noted it, but since this is VERY old, i think it should be re-opened or re-mentioned: http://bugs.php.net/bug.php?id=20365 Modulo operator DOES NOT calc right. (-4) mod 10 should be 6, thats the mathematical definition. modulo is NOT the distance to zero. modulo is NOT the remainder while division. the problem is, that the underlying code is written in c/c++, but c99 does NOT have a real modulus, its a remainder-function. here is a site which describes it: http://www.alecjacobson.com/weblog/?p=1140 Test script: --------------- <?php // euclidean result: 6; php result: -4 .... due to the bug in c++ echo (-4)%10; ?> Expected result: ---------------- 6 Actual result: -------------- -1 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=53208&edit=1

« previous php.doc.bugs (#5449) next »