On 4/18/2011 9:12 AM, salmajj wrote:
hi!
there is a bug with the IF operator that is really dangerous!
please try the code below and if someone could explain to me why when (q is
equal to 0.8, 0.9 or 1) R do not print it?

q=0
for (j in 1:11){

if ((q==1)){
print(q)
        }                       
q=q+0.1
}

so in this code q is incremented from 0 to 1.1. but R do not capture print
the value 1, 0.8 and 0.9 !! try to change (q==0.4) it gonna print 0.4. but
if you put q==0.8 or 0.9 or 1 it doesn't work!!!
please try it it is amazing!!!

It is not a bug. It a misunderstanding on your part of the limits of floating point arithmetic. See FAQ 7.31 (and multiple previous discussions on this and the r-help list).

http://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-doesn_0027t-R-think-these-numbers-are-equal_003f

--
View this message in context: 
http://r.789695.n4.nabble.com/Dangerous-Bug-with-IF-function-of-R-tp3457976p3457976.html
Sent from the R devel mailing list archive at Nabble.com.



--
Brian S. Diggs, PhD
Senior Research Associate, Department of Surgery
Oregon Health & Science University

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to