Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的大数_Php_Largenumber - Fatal编程技术网

PHP中的大数

PHP中的大数,php,largenumber,Php,Largenumber,我在PHP中遇到了一个大数字的问题。我的大量数据将被插入数据库,但一切都出错了 案例1: $testNumber = "1111111111111111"; $num = $testNumber*1; echo $num; // --> 1.11111111111E+15 (wrong) echo number_format($num,0,"",""); // --> 1111111111111111 (right)

我在PHP中遇到了一个大数字的问题。我的大量数据将被插入数据库,但一切都出错了

案例1:

$testNumber = "1111111111111111";
$num = $testNumber*1;
echo $num;                           // --> 1.11111111111E+15   (wrong)
echo number_format($num,0,"","");    // --> 1111111111111111    (right)
案例2:

$testNumber = "11111111111111111";
$num = $testNumber*1;
echo $num;                           // --> 1.11111111111E+16   (wrong)
echo number_format($num,0,"","");    // --> 11111111111111112   (wrong)
案例3:

$testNumber = "111111111111111111";
$num = $testNumber*1;
echo $num;                           // --> 1.11111111111E+17   (wrong)
echo number_format($num,0,"","");    // --> 111111111111111104  (wrong)
我怎样才能解决这个问题

提前谢谢


感谢Wyzard的建议。这是我的解决方案:

$testNumber = "11111111111111111111";
$num = bcmul($testNumber,1);
echo $num;                           // --> 11111111111111111111   (right)
这是非常重要的信息:


“自PHP 4.0.4以来,libbcmath与PHP捆绑在一起。此扩展不需要任何外部库。”

这些数字太大,无法放入一个函数中,因此PHP将其视为一个函数。浮点数的精度有限;它们本质上是有限数量的。听起来你的精度已经达到极限了


您可能希望使用PHP或扩展来处理可能非常大的数字。

这些数字太大,无法放入一个文件中,因此PHP将其视为一个文件。浮点数的精度有限;它们本质上是有限数量的。听起来你的精度已经达到极限了


您可能希望使用PHP或扩展来处理可能非常大的数字。

对于这种情况,我使用了GMP扩展()。首先将数字作为字符串发送到gmp\u init(),然后使用gmp\u。。。函数,然后使用gmp\u strval()以字符串形式检索结果。

对于这种情况,我使用gmp扩展()。首先将数字作为字符串发送到gmp\u init(),然后使用gmp\u。。。函数,然后使用gmp_strval()检索结果作为字符串。dows
$num
来自何处?我更新了我的问题。dows
$num
来自何处?我更新了我的问题。谢谢Wyzard。根据你的建议我找到了我问题的答案。我会更新到我的问题上面。谢谢Wyzard。根据你的建议我找到了我问题的答案。我将更新到我的上述问题。