Hi > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-bounces@r- > project.org] On Behalf Of Andrea Gonnermann > Sent: Tuesday, September 11, 2012 4:24 PM > To: r-help@r-project.org > Subject: [R] R calculates small numbers, where the result should be > zero > > Hi all, > > my problem is that R does wrong calculations, when the result should be > zero. > I have the following code: > > RD_Var1 <- ((0.1*(1-0.1))/100)+((0.2*(1-0.2))/100) > RD_Var2 <- ((0.1*(1-0.1))/100)+((0.2*(1-0.2))/100) > RD_1 <- 0.1-0.2 > RD_1 > RD_2 <- 0.1-0.2 > FEM_Eff_RD <- > ((1/RD_Var1)*RD_1+(1/RD_Var2)*RD_2)/(1/RD_Var1+1/RD_Var2) > Q_RD <- 1/RD_Var1*((RD_1-FEM_Eff_RD)^2)+1/RD_Var2*((RD_2- > FEM_Eff_RD)^2) > Q_RD > My result is: > 1.540744e-31 > When I put the calculated numbers directly into the last formula, I get > zero, which is the correct answer: > Q_RD <- 1/0.0025*((-0.1--0.1)^2)+1/0.0025*((-0.1--0.1)^2) > > Why does R calculate the other number instead of zero?
Because you are probably using computer. Some fractional decimal numbers cannot be expressed as binary finite precision numbers. You can round your result to get 0. BTW it is covered in FAQ 7.31 (I believe) Regards Petr > > Thank you very much for your help! > > ______________________________________________ > R-help@r-project.org mailing list > 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. ______________________________________________ R-help@r-project.org mailing list 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.