[R] Unknown anomaly

Boris Steipe boris.steipe at utoronto.ca
Wed Apr 19 04:53:23 CEST 2017


The concept of equality for numbers that are represented on a computer is frequently misapplied. Consider:

a <- seq(from=0, to=1, by=0.02)

print(a[36])
[1] 0.7

a[36] == 0.7
[1] FALSE

print(a[36], digits=22)
[1] 0.7000000000000000666134

a[36] == 0.7000000000000001
[1] TRUE

All clear?


B.



> On Apr 18, 2017, at 9:55 PM, Benjamin Robira <robira at clipper.ens.fr> wrote:
> 
> Dear Sir,
> 
> I writting to you as I am facing an irregularity in R that I do not know
> the origin. When doing a sequence from 0 to 1 by 0.02 and assigning it to
> a vector (i.e. code: a <- seq(from=0, to=1, by=0.02)) then, when I try to
> use the 36th element (and two others behave the same way) it is not
> recognized correctly. For instance a[36]==0.7, what should give TRUE,
> gives instead FALSE. However, this works fine for element 35 and 37 and
> all other elements but two.
> I do not know the reason. I restarted my R session and tried on another
> computer. This has been the same. None of my colleagues had an answer. I
> hope that you would be able to help me fix that as it must be a pretty
> straightforward error that I do not realise.
> 
> I would be thankful for any help,
> With my very Best Regards,
> Benjamin.
> 
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list