php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #20102 wrong value on mod (%) function
Submitted: 2002-10-26 03:19 UTC Modified: 2002-10-26 14:37 UTC
From: hermawan at dmonster dot com Assigned:
Status: Not a bug Package: *Math Functions
PHP Version: 4.2.3 OS: Redhat Linux 7.3
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: hermawan at dmonster dot com
New email:
PHP Version: OS:

 

 [2002-10-26 03:19 UTC] hermawan at dmonster dot com
When I try to mod some integer, it returns false value, it's different with the calculator. Here is the example :

<?php
  $int = 700000000;
  $modwith = 1000000000000;
  print $int%$modwith; // it return 700000000
                       // this is correnct.
  $int = 800000000;
  print $int%$modwith; // it return 72620032
                       // this is false, it supposed to be 800000000
?> 

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-10-26 12:06 UTC] hholzgra@php.net
your $modwidth value is way beyond the 
usable and valid range (unless you are
on a 64bit system ;)
 [2002-10-26 12:15 UTC] hermawan at dmonster dot com
I found the replacement of mod (%) which can be used with out of range value. The function is :

    function mod ($a, $b) {
      $rtn = $a;
      while ($rtn > $b) {
         $rtn -= $b;
      }
      return $rtn;
    }

It works with my other script and returning the correct value. Please try it.
 [2002-10-26 14:37 UTC] hholzgra@php.net
try 

<?php
  $modwith = 1000000000000;
  echo gettype($modwith);
?>

see?
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Dec 26 12:01:30 2024 UTC