PHP中的平方根

前端之家收集整理的这篇文章主要介绍了PHP中的平方根前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么sqrt的输出PHP中不是“16”的整数?

PHP > $fig = 16;
PHP > $sq = sqrt($fig); //should be 4
PHP > echo $sq;
4
PHP > echo is_int($sq);            // should give 1,but gives false
PHP >

我觉得问题出在内部表示中,PHP隐藏的内容与Python类似.
那么你怎么知道在取平方根后给定的数字是整数?

那么如何在不使用正则表达式的情况下区分PHP和4.12323?

根据PHP手册,float sqrt(float $arg),sqrt()总是返回一个浮点数.使用is_int()函数无法解决问题,因为它会检查数据类型并返回失败.

为了解决这个问题,您可以使用模数来测试它:(对于浮点模数必须是fmod()而对于整数模数必须是%运算符)

if (fmod(sqrt(16),1) == 0) {
   // is an integer
}

如果您使用的是PHP 5.2.0或更高版本,我相信这也可行,但我还没有在这种情况下使用它来确定:

$result = sqrt(16);
if (filter_var($result,FILTER_VALIDATE_INT)) {
    // is an integer
}
原文链接:https://www.f2er.com/php/137269.html

猜你在找的PHP相关文章