我正在尝试使用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得到正确的结果?
答案 0 :(得分:1)
这是HHVM中的一个错误。我们有一个ini设置hhvm.hack.lang.ints_overflow_to_ints
,默认为false,但看起来我们忽略了array_product
。你能在我们的github上提出问题吗?