[R] Unexpected result from binary greater than operator
Sundar Dorai-Raj
sundar.dorai-raj at pdf.com
Tue Nov 1 17:26:13 CET 2005
chris.bodily at autolivasp.com wrote:
> Hi All,
>
> I recently encountered results that I did not expect, exhibited by the
> following code snippet:
>
> test <- function() {
> minX <- 4.2
> min0 <- 4.1
> sigmaG <- 0.1
> Diff <- minX-min0
> print(c(Diff=Diff,sigmaG=sigmaG))
> cat("is Diff > sigmaG?:", Diff > sigmaG,"\n")
> cat("is (4.2 - 4.1) > 0.1?:",(4.2 - 4.1) > 0.1,"\n")
> cat("is 0.1 > 0.1?:", 0.1>0.1,"\n")
> }
>
> When I execute the above function I get the following:
>
>>test()
>
> Diff sigmaG
> 0.1 0.1
> is Diff > sigmaG?: TRUE
> is (4.2 - 4.1) > 0.1?: TRUE
> is 0.1 > 0.1?: FALSE
>
> Can someone please help me understand why R returns TRUE for (4.2 - 4.1) >
> 0.1 ?
>
> Thanks so much,
> Chris
>
>
> I'm running the precompiled R-2.2.0 binary for Windows on WinXP Pro SP1.
>
>
>>Sys.getlocale()
>
> "LC_COLLATE=English_United States.1252;LC_CTYPE=English_United
> States.1252;LC_MONETARY=English_United
> States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252"
>
>
>>version
>
> _
> platform i386-pc-mingw32
> arch i386
> os mingw32
> system i386, mingw32
> status
> major 2
> minor 2.0
> year 2005
> month 10
> day 06
> svn rev 35749
> language R
>
Seems like this is coming up about once a week. See FAQ 7.31.
http://cran.r-project.org/doc/FAQ/R-FAQ.html
Hint:
print(4.2 - 4.1, digits = 16)
--sundar
More information about the R-help
mailing list