如何判断一个数的平方根是否为整数?

cha*_*ote 1 octave

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)

And*_*uri 5

isinteger检查类型。integer是变量的类型,而不是数字的属性。例如isinteger(2.0)返回0

尝试:

mod(sqrt(x),1) == 0
Run Code Online (Sandbox Code Playgroud)

但是,由于数值精度的原因,您可能仍然遇到问题。