[R] R calculates small numbers, where the result should be zero

Bryan Hanson hanson at depauw.edu
Tue Sep 11 16:52:09 CEST 2012


This is the result of how any computer program stores numbers, it's not unique to R.  A slightly different question is discussed in R FAQ 7.31 but it applies to your situation.  You may also enjoy the R Inferno at www.burns-stat.com/pages/Tutor/R_inferno.pdf 

Bryan

***********
Bryan Hanson
Professor of Chemistry & Biochemistry
DePauw University

On Sep 11, 2012, at 10:23 AM, Andrea Gonnermann <dreli14 at googlemail.com> wrote:

> 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?
> 
> Thank you very much for your help!
> 
> ______________________________________________
> R-help at 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.




More information about the R-help mailing list