我必须对数组的值求和。我有一个数组
$arr = array('0' => 87.85749999999999823, '1'=>1);
print_r(array_sum($arr));
我的输出为88.8575,但我期待88.85749999999999823
感谢您的帮助。
答案 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;