我在这里遇到了一个奇怪的问题:
setProgress <- function(total) {
ticks <- seq(.01, 1, by = 0.01) * total
return(ticks)
}
ticks <- setProgress(10000)
is.element(100, ticks)
is.element(205, ticks)
# ...
is.element(700, ticks)
如果您运行该代码,您将获得:
显然,100是向量ticks
的一部分。 - &GT; TRUE
205显然不是。 - &GT; FALSE
700 是ticks
的一部分,但我收到了输出FALSE
。
这里发生了什么?
干杯, 马丁
答案 0 :(得分:4)
这是一个舍入错误。设置options(digits=22)
并查看ticks
。您将找到此值:7000.0000000000009094947
错误是因为0.7
无法准确表示为二进制浮点数。
您可以使用此定义修复它:
setProgress <- function(total) { seq(total/100, total, length=100) }