Unix command > bcによる少数の演算

更新日 2012-01-21
広告
少数の演算を行う方法を紹介します。
例えばBashだと、letを使う方法や、二重括弧を使う方法では整数の演算しかできません。 そこでbcコマンドの出番です。
以下は、1と0.2を足し算する例です。
bc$ echo "1 + 0.2" | bc
1.2
こんな感じで、「少数の演算式」を、bcコマンドにパイプで渡してやるとよいです。
以下のサンプル test-bc.sh は、四則演算を行う例です。
#!/bin/bash

a=1
b=0.5

echo "$a + $b" | bc # 足し算
echo "$a - $b" | bc # 引き算
echo "$a * $b" | bc # 掛け算
echo "$a / $b" | bc # 割り算
実行結果は以下のようになります。
bc$ ./test-bc.sh 
1.5
.5
.5
2
引き算と掛け算の結果は 0.5 なのですが、'0'の部分は消されてしまうことに注意してください。 個人的には、'0.5'と表示してほしいのですが、今のところ、シンプルな解決策を見つけられてません。 応急処置としては、先頭がカンマだった場合に、'0.'に置換する方法があります。 sedを使った例は以下のとおりです。
bc$ echo "1 - 0.5" | bc | sed -e 's/^\./0./g'
0.5
また、デフォルトでは、小数点以下の有効桁数は1です。
bc$ echo "10 / 3" | bc
3
scaleパラメータを使えば、調節できます。以下に例を示します。
bc$ echo "scale=5; 10 / 3" | bc
3.33333
広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system