加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP中的平方根

发布时间:2020-12-13 13:24:32 所属栏目:PHP教程 来源:网络整理
导读:为什么sqrt的输出在 PHP中不是“16”的整数? 例 php $fig = 16;php $sq = sqrt($fig); //should be 4php echo $sq;4php echo is_int($sq); // should give 1,but gives falsephp 我觉得问题出在内部表示中,PHP隐藏的内容与Python类似. 那么你怎么知道在取平
为什么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
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读