Hello Matthew,
3/4 = (0*4)+3 --> 3%4 = 3
9/4 = (2*4)+1 --> 9%4 = 1
20/10 = (2*10)+0 --> 20%10 = 0
4 goes into 3 a total of ZERO times with a remainder of 3.
10 goes into 20 a total of TWO times with a remainder of 0.
Take a look at a standard (integer) long division problem with
remainders.
--
Best regards,
Jason mailto:jason@ionzoft.com
Thursday, August 5, 2004, 9:02:04 PM, you wrote:
MB> Found some weird behavior in the built in mod function (%):
MB> $a = 4;
MB> $b = 3;
MB> print ( $a % $b ); (returns 1 as it should)
MB> Now swap $a and $b:
MB> $a = 3;
MB> $b = 4;
MB> print ( $a % $b );
MB> This returns 3. 3?! 3/4 is 0.75. Shouldn't this return 0?
MB> Try this one:
MB> $a = 20;
MB> $b = 10;
MB> print ( $a % $b );
MB> Shouldn't that return 2? It returns 0;
MB> $a = 11;
MB> $b = 21;
MB> print ( $a % $b );
MB> Returns 11. What is going on? Was my C.S. Professor wrong in telling us
MB> that the % function returns the left side of the decimal in a division?
MB> This is PHP 4.3.4
MB> Any help would be appreciated.
MB> Thanks,
MB> Matthew
MB> --
MB> ----------------------------------------------------------------------------
MB> Matthew Boehm
MB> dr_mac@mail.utexas.edu
MB> The University of Texas at Austin, Department of Geography
MB> "Why did the prison use Windows2K as a guard? Because it always locks up!"
MB> <?PHP echo "PHP kicks ASP!"; ?>
MB> ----------------------------------------------------------------------------