Skip to content
Prev 284013 / 398502 Next

The "less than" (<) operator doesnt seem to perform as expected

On Thu, Feb 02, 2012 at 10:00:58AM +0000, Jonas Hal wrote:
Hi.

As others pointed out, the problem is in different
rounding error of 0.6 and seq(0.4, 0.7, 0.1)[3]. Try

  print(0.6, digits=20)

  [1] 0.5999999999999999778

  print(seq(0.4, 0.7, 0.1)[3], digits=20)

  [1] 0.60000000000000008882

Use round(, digits=1) to force the same rounding in
seq(0.4, 0.7, 0.1) and in c(0.4, 0.5, 0.6, 0.7)

  round(seq(0.4, 0.7, 0.1), digits=1) == c(0.4, 0.5, 0.6, 0.7)

Hope this helps.

Petr Savicky.