我無法解釋以下行爲。使用(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)整數值 –