重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

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

A 回答 (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";
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/10/06 16:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!