• ベストアンサー

[linux]bcコマンドについて

linuxでシェルスクリプトを作っています.その際,実数の計算をやる必要があって,bcコマンドを使ってやろうとしていますが有効数字の指定(length)の指定の仕方が分かりません. したい計算は,以下のようなものです.(有効数字3桁で計算させたいのですが,.22222と表示され整数部の0が表示されません.) yByD=` echo "length = 3; 2 * 3 / 27 " | bc` ネットやマニュアル等を見ても情報が得られません.誰かご存知の方ご教示よろしくお願いします.

質問者が選んだベストアンサー

  • ベストアンサー
  • kuroizell
  • ベストアンサー率55% (95/170)
回答No.1

bashは数値の扱いがちょっと変わっていて、随分混乱した事があります。(bcも一般的なプログラムとは少し変わっているようですね) 差し当たり、  yByD=` echo "scale = 3; 2 * 3 / 27 " | bc | sed -e "s/^\./0/"` とすることで、ご希望の表示になるのではないでしょうか。 LinuxならPerl,PHP,Python辺りに切り替えた方がラクかもしれません。 私が分かるのはPerlだけですが、こんなカンジです。 #!/usr/bin/perl use strict; use warnings; my $keisan = 2 * 3 / 27; my $anser = sprintf("%.3f",$keisan); print "$anser\n";

Falcon2
質問者

お礼

早々の回答ありがとうございます. yByD=` echo "scale = 3; 2 * 3 / 27 " | bc | sed -e "s/^\./0./"` で試したところ思う様に行きました. 置換をすればいいのですね,勉強になりました.perlは使ったことがないのでまた勉強したいと思います. 回答ありがとうございました.

関連するQ&A