模数%给出2代替0

时间:2017-09-25 23:09:17

标签: php modulus

在php中: 模数%给出$ x的剩余除以$ y。

我试过这段代码:

<?php
print(100000000165 % 5);

结果是2 因为它应该是0

1 个答案:

答案 0 :(得分:1)

这是因为您正在使用32位系统。

32位php中的最大整数是public function getMostUsedTags($limit = 3) { return Tag::selectRaw('tags.*, COUNT(images.id) AS total') ->join('images_tags', 'tags.id', '=', 'images_tags.tag_id') ->join('images', 'images.id', '=', 'images_tags.image_id') ->where('images.created_by', $this->id) ->groupBy('tags.id') ->orderBy('total', 'desc') ->limit($limit) ->get(); } 。这意味着在那之后(从2147483647开始),它是一个溢出和包装。

您的号码大于此值,因此结果是:2147483648 =&gt; (100000000165 % 2147483648) % 5 =&gt; 1215752357 % 5

补充:您可以自己构建模数函数并处理浮点数

2

Dealing with floats and epsilon