HHVM以不同的方式处理大整数 - 解决方案是什么

时间:2014-09-29 22:22:02

标签: hhvm

我正在尝试使用HHVM并试用了一个因子!实现。我注意到的是,虽然PHP会帮助我将大整数转换成科学记数法,但HHVM不会这样做。 如何在HHVM中处理大整数?

<?php //factorial.php
$n = $argv[1];
$factorial = array_product(range(1, $n));
echo $factorial . "\n";     //direct output
printf("%g\n", $factorial); //force scientific notation

#> php factorial.php 52 //how many ways can you shuffle a deck of cards (php)?
   8.0658175170944E+67
   8.06582e+67

#> hhvm factorial.php 52 //how many ways can you shuffle a deck of cards (hhvm)?
   -8452693550620999680
   -8.45269e+18

所以PHP对整数的最大大小要宽松得多,我需要做些什么才能通过hhvm得到正确的结果?

1 个答案:

答案 0 :(得分:1)

这是HHVM中的一个错误。我们有一个ini设置hhvm.hack.lang.ints_overflow_to_ints,默认为false,但看起来我们忽略了array_product。你能在我们的github上提出问题吗?