Linuxシェルスクリプト()に問題がありますsh
。
組み合わせを計算するスクリプトを作成しようとしていますが、関数を計算しようとするとオーバーフローが発生しているようです。だから別のスキルを試しています。この技術では、以下を使用しました。
a=`expr $var1 \* $var2 / $var3`
これによりエラーが発生し、明らかにこれを行うことはできません。
a=`expr ($var1 \* $var2) / $var3`
なぜなら、これもエラーを引き起こすからです。
どうすればいいですか?
ベストアンサー1
dc
任意の精度結果に使用できます。
precision=4 var1=3 var2=4 var3=5
a=`echo "$precision k $var1 $var2 * $var3 /p" | dc`
これは1977年頃以来、ほぼすべてのUnix亜種で動作します。 gnu dcが利用可能であることを知っていれば、もっと簡単です。
a=`dc -e "$precision k $var1 $var2 * $var3 /p"`
使用できます。