PHP舍入数到小数点后6位

时间:2016-11-17 17:21:24

标签: php math php-7

我需要返回(1 / n!)*(1!+ 2!+ 3!+ ... + n!)的结果,n> = 1。 这是CodeWars的挑战!对于n = 8,下面的代码返回1.146652,但正确的结果是1.1466510000000001或1.146651。

如何正确截断此数字?

function factorial($val){
  $factor = 1;
  for($i=1;$i<=$val;$i++){
    $factor *= $i;
  }
  return $factor;
}

function going($n) {
  $val = 1/factorial($n);
  $somatorio = 0;
  for($i=1;$i<=$n;$i++){
    $somatorio += factorial($i);
  }

  return round($val * $somatorio,6);
}

0 个答案:

没有答案