我无法解释以下行为。使用(int)投射非常大的整数(通过PHP处理为浮点数)时,得到以下结果:PHP - 从大型浮点数转换为int将返回0
<?php
print (int)9223372036854775800; // returns: 9223372036854775800
echo "<br />";
print (int)11702667999999911110; // returns: -6744076073709639680
echo "<br />";
print (int)17999997999999911110; // returns: -446746073709639680
echo "<br />";
print (int)18400997999999911110; // returns: -45746073709639680
echo "<br />";
print (int)41702667999999999990; // returns: 0
?>
为什么PHP返回这些值?
也许这种行为是因为那些大的值超过了32位或64位的范围(取决于你使用的是哪个PHP)整数值 –