array_sum 不同逗号的数字不等于零而是长数字
array_sum numbers with different comma not equal to zero but long number
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->amount 中的数字是这样的时候
278.75
35.96
-203
-13.92
-97.79
我有很长的号码
-2.8421709430404E-14
我怎么能让 array_sum 给我这个值的零结果
谢谢
您可以将数组总和转换为整数,这将使您的指数值输出为零
尝试以下解决方案:
if((int) array_sum($request->amount) <> 0)
{
session()->flash('sum_error','sum_error');
return back();
}
else
return (int) array_sum($request->amount);
我简单地转换为整数值
使用 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;
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->amount 中的数字是这样的时候
278.75
35.96
-203
-13.92
-97.79
我有很长的号码
-2.8421709430404E-14
我怎么能让 array_sum 给我这个值的零结果 谢谢
您可以将数组总和转换为整数,这将使您的指数值输出为零
尝试以下解决方案:
if((int) array_sum($request->amount) <> 0)
{
session()->flash('sum_error','sum_error');
return back();
}
else
return (int) array_sum($request->amount);
我简单地转换为整数值
使用 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;