seq 结果与 vector return false 比较

seq results compare with vector return false

我有以下代码:

     seq(0.2, 0.4, by = 0.1) == c(0.2, 0.3, 0.4)

产生:

     [1]  TRUE FALSE  TRUE

有人可以解释一下这个结果吗?

这是数值错误:

> seq(0.2, 0.4, by = 0.1)-c(0.2, 0.3, 0.4)
[1] 0.000000e+00 5.551115e-17 0.000000e+00

参见 ?identical?all.equal 并比较:

> identical(seq(0.2, 0.4, by = 0.1),c(0.2, 0.3, 0.4))
[1] FALSE
> all.equal(seq(0.2, 0.4, by = 0.1),c(0.2, 0.3, 0.4))
[1] TRUE

同时比较:

> seq(2L,4L,by=1L)/10==c(.2,.3,.4)
[1] TRUE TRUE TRUE