The problem with casting to int or even float is that you lose precision:
PHP Code:
$million = 1000000;
$large_number = 50000000000000 * $million;
var_dump($large_number); // float(5.0E+19)
$large_number = $large_number + 1;
var_dump($large_number); // float(5.0E+19)
var_dump($large_number === $large_number+1); // bool(true)
Clearly, that last line should be false.
Generally, you're better off storing large numbers as strings in PHP. I've never needed it so I'll let someone else answer the best way to perform arithmetic on them.
Bookmarks