如何使用php中的array_sum对超过15位的数组值求和

时间:2015-09-02 12:00:14

标签: php

我必须对数组的值求和。我有一个数组

$arr = array('0' => 87.85749999999999823, '1'=>1); print_r(array_sum($arr));

我的输出为88.8575,但我期待88.85749999999999823

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

float限制在14位数。如果您需要更高的准确度,请尝试使用BC Math库

<?php
echo "<br/>float<br/>";
$arr = array('0' => 87.85749999999999823, '1'=>1);
print_r(($arr));
print_r(bcadd($arr[0], $arr[1], 20));

echo "<br/>BCMath<br/>";
$arr = array('0' => "87.85749999999999823", '1'=>"1");
print_r(($arr));
print_r(bcadd($arr[0], $arr[1], 20));

答案 1 :(得分:0)

您可以使用如下:

<?php
$arr = array('0' => '87.85749999999999823', '1'=>'1');
$res = 0.0;
foreach($arr as $val){
    $res = bcadd($res, $val, 20);
}
echo $res;