PHP-php中对比较大的数字取模时得到负数怎么解决?

PHP-php中对比较大的数字取模时得到负数怎么解决?

偏爱自由 发布于 2017-06-04 字数 91 浏览 1201 回复 2

举例来说:

echo  3245356034%256;

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

虐人心 2017-10-06 2 楼

不支持bcXXX函数,没有安装扩展的时候可以使用fmod函数。

参考链接:http://php.net/manual/en/function.fmod.php

使用示例:

<?php
$var1 = 5;
$var2 = 2;

echo $var1 % $var2; //Returns 1
echo fmod($var1,$var2); //Returns the same
?>

想挽留 2017-09-23 1 楼

echo bcmod('3245356034','256');

补充手册上的一个方法:

function my_bcmod( $x, $y ){
// how many numbers to take at once? carefull not to exceed (int)
$take = 5;
$mod = '';
do{
$a = (int)$mod.substr( $x, 0, $take );
$x = substr( $x, $take );
$mod = $a % $y;
}
while ( strlen($x) );
return (int)$mod;
}

最后说句,修改了问题,尽量评论下答案。。