如何检查乘以数字n的一系列数字是否为整数

时间:2014-12-10 13:49:54

标签: r seq

我想检查一系列数字乘以数字n是否为整数。但是,当我使用seq函数开发这个系列并乘以n,然后检查它是否是一个整数序列时,我会发现错误,例如下面的例子。请帮我弄清楚这个问题!

x <- seq(from=0.001, to=0.015, by=0.001)
x
[1] 0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009 0.010 0.011 0.012 0.013 0.014 0.015
n <- 1000
a = x[9]*n
a
[1] 9
a == 9
[1] FALSE

1 个答案:

答案 0 :(得分:1)

R中的浮动数学运算可能会在R中产生令人惊讶的结果,如您的示例所示。

使用您的代码,您会发现变量 a 与9之间存在非常小的差异(请注意,您看到的确切值可能会有所不同):

a-9   # yields 1.776357e-15

您可以通过将差异与非常小的值进行比较来解决这个问题:

abs(a-9) < 1e-10  # yields TRUE

您会发现比较库很有用

library(compare)
compare(a,9)      # yields TRUE