为什么 rep 函数中的 times 参数行为不正确

Why does times argument in rep function not behaving correctly

这个问题的答案可能很简单,但我想不出明显的原因。

为什么 rep(1,40*(1-0.8)) 产生长度为 7 而不是 8 的向量?任何人都可以。

这是由于浮点精度:

print(40*(1-0.8), digits = 20)
## [1] 7.9999999999999982

round可以使用:

rep(1, round(40*(1-0.8)))
## [1] 1 1 1 1 1 1 1 1