bcを使用した後のコマンドは科学表記の数には機能しないので、awkを使用するなどの代替手段があるかどうか疑問に思います。
sum=$( IFS="+"; bc <<< "${arrValues[*]}" )
ベストアンサー1
sum=$(
awk 'BEGIN {t=0; for (i in ARGV) t+=ARGV[i]; print t}' "${arrValues[@]}"
)
zshを使用してください(そうでない場合持つ)bash
内部的に浮動小数点数をサポートしているからです。
sum=$((${(j[+])arrValues}))
そしてksh93
:
提供された精度が必要な場合は、bc
数字が次の12e23
ように変更されるように前処理できます(12*10^23)
。
sum=$(
IFS=+
sed 's/\([0-9.]*\)[eE]\([-+]*[0-9]*\)/(\1*10^\2)/g' <<< "${arrValues[*]}" |
bc -l
)