isinteger(sqrt(3))
0
isinteger(sqrt(4))
0
Run Code Online (Sandbox Code Playgroud)
两个答案都为零。答案必须是:
isinteger(sqrt(3))
0
isinteger(sqrt(4))
1
Run Code Online (Sandbox Code Playgroud)
    isinteger检查类型。integer是变量的类型,而不是数字的属性。例如isinteger(2.0)返回0。
尝试:
mod(sqrt(x),1) == 0
Run Code Online (Sandbox Code Playgroud)
但是,由于数值精度的原因,您可能仍然遇到问题。