具有不同逗号的ar​​ray_sum数字不等于零,但长数字

时间:2018-09-30 10:51:57

标签: php array-sum

if(array_sum($request->amount) <> 0)
{
    session()->flash('sum_error','sum_error');
    return back();
}
else
    return array_sum($request->amount);

一切正常,像这样的数字

1
2
2
3
5
7
12
36

但是当$ request->中的数字等于这样

278.75
35.96
-203
-13.92
-97.79

我的电话很长

-2.8421709430404E-14

我怎样才能让array_sum在这个值上给我零结果 谢谢

2 个答案:

答案 0 :(得分:1)

您可以将数组总和转换为整数,从而将指数值输出为零

尝试以下解决方案:

if((int) array_sum($request->amount) <> 0)
{
    session()->flash('sum_error','sum_error');
    return back();
}
else
    return (int) array_sum($request->amount);

我可以简单地转换为整数值

答案 1 :(得分:1)

使用sprintf将指数格式转换为所需的格式。

$sum = array_sum($request->amount);

$sum = sprintf('%f', $sum);

// or (if you want to limit the number of fractional digits to lets say 6
$sum = sprintf('%.6f', $sum);

// or use number_format function
$sum = number_format($sum,5);

if($sum <> 0)
{
    session()->flash('sum_error','sum_error');
    return back();
}
else
    return $sum;