整数溢出:
如果给定的一个数超出了 integer 的范围,将会被解释为 float 。同样如果执行的运算结果超出了 integer 范围,也会返回 float
Example #3 32 位系统下的整数溢出
$large_number = 2147483647 ;
var_dump ( $large_number ); // int(2147483647)
$large_number = 2147483648 ;
var_dump ( $large_number ); // float(2147483648)
$million = 1000000 ;
$large_number = 50000 * $million ;
var_dump ( $large_number ); // float(50000000000)
?>
Example #4 64 位系统下的整数溢出
$large_number = 9223372036854775807 ;
var_dump ( $large_number ); // int(9223372036854775807)
$large_number = 9223372036854775808 ;
var_dump ( $large_number ); // float(9.2233720368548E+18)
$million = 1000000 ;
$large_number = 50000000000000 * $million ;
var_dump ( $large_number ); // float(5.0E+19)
?>
PHP 中没有整除的运算符。1/2 产生出 float 0.5。值可以舍弃小数部分强制转换为 integer ,或者使用 round() 函数可以更好地进行四舍五入。
var_dump(1/2) //0.5
var_dump((int)(1/2)) //0
var_dump(round(1/2)) //1
从浮点型转换
当从浮点数转换成整数时,将向下取整。
var_dump((int)0.9); //0