本文实例讲述了PHP实现大数(浮点数)取余的方法。分享给大家供大家参考,具体如下:
一般我们进行取余运算第一个想到的就是用百分号%,但当除数是个很大的数值,超出了int范围时,这样取余就不准确了。
php大数(浮点数)取余函数:
1
2
3
4
5
6
7
8
9
10
11
|
/** * php大数取余 * * @param int or float $bn 除数 * @param int $sn 被除数 * @return int 余数 */ //大数(浮点数)取余方法 function Kmod( $bn , $sn ) { return intval ( fmod ( floatval ( $bn ), $sn )); } |
测试代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
//大数(浮点数)取余方法 function Kmod( $bn , $sn ) { return intval ( fmod ( floatval ( $bn ), $sn )); } //整数取余方法 function mod( $bn , $sn ) { return $bn % $sn ; } //最大的int整数 $bn = PHP_INT_MAX; $sn = 11; var_dump( $bn ); var_dump(Kmod( $bn , $sn )); var_dump(mod( $bn , $sn )); //给最大的int整数加1 $bn = PHP_INT_MAX + 1; var_dump( $bn ); var_dump(Kmod( $bn , $sn )); var_dump(mod( $bn , $sn )); |
执行结果:
1
2
3
4
5
6
|
int 2147483647 int 1 int 1 float 2147483648 int 2 int -2 |
希望本文所述对大家PHP程序设计有所帮助。