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