php5将64位整数转换为双倍 - 如何强制64位?

问题描述:

在PHP5,通过一个64位的整数,1707541557936130通过GET,但它显示的1.7075415579361E+15php5将64位整数转换为双倍 - 如何强制64位?

值如何可以强制PHP来使用大的整数为整数,而不是作为浮动

当我转移<<显然的结果也就是int32,不是int64

有没有办法让全局说使用int64?

+0

有[GMP](http://php.net/manual/book.gmp.php)和有[BC数学](HTTP:// PHP。净/手动/ book.bc.php)。至少GMP应该帮助你。 – hakre 2012-08-01 13:44:42

PHP仅在64位系统上支持64位整数。在这两种情况下,大于PHP_INT_MAX的整数都被转换为浮点数。 参见manual

尝试此代码:

<?php 
$i=1707541557936130; 
var_dump($i);  
echo PHP_INT_MAX; 
+0

这是一个无赖,尤其是PHP的自动转换。 – 2012-01-02 15:14:25