[R] A strange arithmetic error in R (maybe a bug)

Adrian Dușa dusa.adrian at unibuc.ro
Sat Feb 18 21:19:15 CET 2017


There is no bug, of course, this is a common floating point arithmetic
misunderstanding.

> print(2.01, digits = 20)
[1] 2.0099999999999997868

Please search for "What every scientist should know about floating-point
arithmetic" and you'll hopefully understand what the "bug" is.

Hth,
Adrian



On Sat, Feb 18, 2017 at 6:18 AM, T. Zhang <tz05 at me.com> wrote:

> 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 at 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.




-- 
Adrian Dusa
University of Bucharest
Romanian Social Data Archive
Soseaua Panduri nr. 90-92
050663 Bucharest sector 5
Romania

	[[alternative HTML version deleted]]



More information about the R-help mailing list