R:is.integer不适用于平方根

Cyp*_*ess 3 r

基本上,我想检查数字的平方根是否是整数,所以我尝试了以下函数:

is.integer(sqrt(4))
Run Code Online (Sandbox Code Playgroud)

预期值是TRUE实际结果FALSE.我已经阅读了一些其他帖子,似乎我需要使用L强制转换为整数.但是,不知道我应该如何使它在我的情况下工作.

Erw*_*gen 7

是.甚至:

is.integer(1)
## [1] FALSE
Run Code Online (Sandbox Code Playgroud)

因为类型(与值相对)不是整数.看看帮助?is.integer.is.wholenumber这里显示了一个功能:

is.wholenumber <-
     function(x, tol = .Machine$double.eps^0.5)  
         abs(x - round(x)) < tol
is.wholenumber(sqrt(4))
## [1] TRUE
Run Code Online (Sandbox Code Playgroud)