1

可能重复:
为什么这些数字不相等?

在 Gnu R 中:

which(seq(0, 1600, 0.05) == 0.3) returns
integer(0)

但是这个:

which(round(seq(0, 1600, 0.05),2) == 0.3) returns
[1] 7

函数会发生什么seq()

4

1 回答 1

5

这本质上是关于浮点数比较的 R FAQ 7.31——导致著名的“每个计算机科学家都应该了解浮点数的知识”。

简而言之,useidentical()和其他辅助函数相对于一个小值 \epsilon 进行比较,因为浮点类型不能具有完全相等。

于 2012-11-15T14:03:28.133 回答