Integer overflow
If PHP finds that the number is larger than the integer type, it will interpret it as a float. Similarly, if the result of an operation is outside the integer type, it will be converted to float.
http://php.net/manual/ru/language.types.integer.php
and try this code:
$x=4294967295; // это срез Вашего числа, чтобы не было переполнения $y=4356200406; echo $x & $y;
To understand what the overflow really happened, do
echo $steamID; // 7.6561198021499E+16
How to solve this problem:
$x=gmp_init("76561198021498838"); $y=gmp_init("4294967295"); echo gmp_strval(gmp_and($x, $y)); // 61233110