Hello,

Today I happened to notice a strange error in R. If you type (2.01-0.06)==1.95, 
output from R is “FALSE”, which is wrong. But if you type (1.01-0.06)==0.95, 
output is “TRUE”, which is correct. I tested this in two systems: R 3.3.2 in my 
iMac and R 3.2.0 on my school’s Linux server. Both gave same outputs. As shown 
in the following:

> 2.01-0.06
[1] 1.95
> (2.01-0.06)==1.95  # should be TRUE; output is wrong
[1] FALSE
> 1.01-0.06
[1] 0.95
> (1.01-0.06)==0.95  # should be TRUE; output is correct
[1] TRUE
> (2.01-0.06)>1.95  # should be FALSE; output is correct
[1] FALSE
> (2.01-0.06)<1.95  # should be FALSE; output is wrong
[1] TRUE

Similar errors could be found with simple alterations of the above inputs, such 
as:
> 5.533-5.412
[1] 0.121
> (5.533-5.412)==0.121  # should be TRUE; output is wrong
[1] FALSE
> 2.533-2.412
[1] 0.121
> (2.533-2.412)==0.121  # should be TRUE; output is correct
[1] TRUE

Could any of you test whether you have same outputs as mine? And does anyone 
know what is wrong with these? My guess is that R has a bug in processing 
double numbers. Thanks!

TZ
______________________________________________
R-help@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.

Reply via email to