Skip to content
Prev 248153 / 398506 Next

sensitivity logical operators in R

On Sun, Jan 23, 2011 at 11:13:11PM +0100, Marc Jekel wrote:
The number 0.7 has infinite expansion in binary
  0.1011001100110011001100110011...
so is rounded in the standard numeric data type, which is used for
speed needed in complex computations. If you know in advance that
the result has at most 2 decimal positions, then round(, digits=2)
yields the correct comparison

  round(t, 2) == round(tt, 2)
  # [1] TRUE

athough 0.2 is also not exactly representable. Both sides are rounded
to the same representable number.

See also
  http://rwiki.sciviews.org/doku.php?id=misc:r_accuracy
for other examples.

Petr Savicky.