[Rd] bug in modulus operator %% (PR#7852)

Robert.McGehee at geodecapital.com Robert.McGehee at geodecapital.com
Wed May 11 22:20:43 CEST 2005


Yes, you are correct. I had only checked one of my platforms. Linux
works as you suggest. But for me on Windows,=20

> x <- 1
> y <- 0.2
> x %/% y
[1] 5  ## I get a 4 in Linux

version
         _             =20
platform i386-pc-mingw32
arch     i386          =20
os       mingw32       =20
system   i386, mingw32 =20
status                 =20
major    2             =20
minor    1.0           =20
year     2005          =20
month    04            =20
day      18            =20
language R             =20


-----Original Message-----
From: Peter Dalgaard [mailto:p.dalgaard at biostat.ku.dk]=20
Sent: Wednesday, May 11, 2005 4:14 PM
To: McGehee, Robert
Cc: ted.harding at nessie.mcc.ac.uk; Peter Dalgaard; R-bugs at biostat.ku.dk;
kjetil at acelerate.com; r-devel at stat.math.ethz.ch
Subject: Re: [Rd] bug in modulus operator %% (PR#7852)


"McGehee, Robert" <Robert.McGehee at geodecapital.com> writes:

> Yes, but from ?"%%":
> "It is guaranteed that 'x =3D=3D (x %% y) + y * (x %/% y)' (up to =
rounding
> error) ..."
>=20
> (R 2.1.0)
> > x <- 1
> > y <- 0.2
> > x %% y
> [1] 0.2
> > (x %% y) + y * (x %/% y)
> [1] 1.2
>=20
> Certainly 1 does not equal 1.2 as the documentation would suggest, and
> these seem like large enough numbers to not be effected by rounding
> errors or lack of precision.

Now that looks a bit odd, but it isn't universal:

> x <- 1
> y <- 0.2
> x %% y
[1] 0.2
> x %/% y
[1] 4
> (x %% y) + y * (x %/% y)
[1] 1

So what platform was that happening on?

--=20
   O__  ---- Peter Dalgaard             Blegdamsvej 3 =20
  c/ /'_ --- Dept. of Biostatistics     2200 Cph. N  =20
 (*) \(*) -- University of Copenhagen   Denmark      Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)             FAX: (+45) 35327907



More information about the R-devel mailing list