Duncan If the numbers are not represently exactly how does R resolve problems like the one below? Is there something that needs to be set up in the R environment like the number of significant figures?
> x<-4.145*100+0.5 > x [1] 415 > floor(x) [1] 414 > as.integer(x) [1] 414 > trunc(x) [1] 414 Mike White ----- Original Message ----- From: "Duncan Murdoch" <[EMAIL PROTECTED]> To: "Hedderik van Rijn" <[EMAIL PROTECTED]> Cc: <[EMAIL PROTECTED]> Sent: Tuesday, June 03, 2003 2:40 AM Subject: Re: [R] Rounding problem R vs Excel > On Mon, 2 Jun 2003 20:50:20 -0400, you wrote: > > >Does this script do what you want? > > > >cround <- function(x,digits=0) { > > a <- ifelse(x>0,.5,-.5) > > if (digits==0) { > > floor(x+a) > > } else { > > m <- 10^digits > > floor(x*m+a)/m > > } > >} > > No, the problem is that R uses binary formats, and some numbers aren't > representable there. So for example, > > > cround(0.145,2) > [1] 0.14 > > because 0.145 isn't representable exactly, and is actually being > represented as 0.14999999999 or something similar. > > Duncan Murdoch > > ______________________________________________ > [EMAIL PROTECTED] mailing list > https://www.stat.math.ethz.ch/mailman/listinfo/r-help > > ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help