On 9/30/2009 3:17 PM, Martin Batholdy wrote:
hum,
can you explain that a little more detailed?
Perhaps I miss the background knowledge - but it seems just absurd to
me.
0.1+0.1+0.1 is 0.3 - there is no rounding involved, is there?
R uses a binary floating point storage format, which is the standard
thing to do in most languages. Numbers which are fractions like 1/2,
1/4 and 57/128 are all representable exactly, because the denominator is
a power of 2. Whole numbers are also representable exactly.
However, numbers like 1/10 are not. So R stores something slightly
different from 1/10 when you say x <- 0.1. If you compare it to 1/10,
then it comes out equal, because you're comparing to the same slightly
incorrect value.
However, by the time you add up 3 of them, the rounding error
accumulates, and you get a different answer than you'd get from 3/10,
which is the same as 0.3.
Duncan Murdoch
why is
x <- 0.1 + 0.1 +0.1
not equal to
y <- 0.3
?
Am 30.09.2009 um 21:04 schrieb Duncan Murdoch:
On 9/30/2009 2:50 PM, Michael Knudsen wrote:
On Wed, Sep 30, 2009 at 8:44 PM, Duncan Murdoch
<murd...@stats.uwo.ca> wrote:
Why? You asked for an increment of 1 in the second case (which is
exactly
represented in R), then divided by 10, so you'll get the same as
0.3 gives
you. In the seq() case you asked for an increment of a number
close to but
not equal to 1/10 (because 1/10 is not exactly representable in
R), so you
got something different.
Well, the problem is that I don't know how seq is implemented. I just
assumed that it wouldn't behave like this.
It doesn't really matter how it is implemented: if you ask to start
at 0.1 and increment by 0.1, you should expect the result to be the
same as
0.1
0.1+0.1
0.1+0.1+0.1
etc.
and I think it is. The problem is that 0.1+0.1+0.1 is not the same
as 0.3, due to rounding. Neither 0.1 nor 0.3 can be represented
exactly in the standard IEEE floating point formats that R uses.
Duncan Murdoch
______________________________________________
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.