php sqrt函数返回一个整数?

我正在创建一个简单的PHP程序,如果(并且只有)三个随机数计算为整数,它才会执行操作。随机数都是整数,用rand()函数创建。没有进入计算的具体细节,重要的是(就我的问题而言)它包括取平方根。不是一个非常有经验的PHP编码器,我所知道的唯一的平方根函数是sqrt()。问题是,sqrt()返回一个浮点数,即使输入是一个整数,输出也是精确的。我简单地想过将输出转换为整数(使用类似intval()的东西,但这不起作用,因为它会将所有输出转换为整数,使得测试无用!有关如何执行此操作的任何想法? 谢谢,     
已邀请:
如果你只是想确定它是否是一个完美的正方形,那就确定一下
intval(result) * intval(result) == originalValue
我不知道那些函数的php版本,但也许你呢? :)     
使用浮点时这是一个常见问题。只需检查你得到的浮点数是否非常接近整数;通常这是通过检查小数部分非常小来完成的:
if (abs(round(f)-f))<delta)
  # do stuff
这里
delta
是一个小常数,例如0.0001。它必须有多小取决于您希望结果与整数的接近程度。这取决于你的计算。     
类似于
if($result % 1.0 == 0)
的东西可能会起作用,但我现在没有能力进行测试。     
$result % 1e9
将返回$ result的整数部分(对于负数,它将找到结果的ceil)。但它是一个黑客,所以你可能只是为了好玩而使用它。 https://repl.it/Chqm/1     
这些知识来自另一种语言的编程,但是您尝试将表达式乘以1。 例如,如果你需要获得类似的整数
a = 3.45 * 8;
做这个
a = 3.45 * 8 * 1;
    

要回复问题请先登录注册