32

bcツールがスケールオプションを無視することがある理由がわかりません。

次に例を示します。

> echo 'scale=2; 2.777 - 1.4744' | bc
1.3026

期待される結果は次のとおりです。

1.30

追加情報:

> bash --version
GNU bash, version 2.05b.0(1)-release (x86_64-suse-linux)
Copyright (C) 2002 Free Software Foundation, Inc.
> bc --version
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
4

2 に答える 2

46

Carlが指摘したように、manページを確認すると、その行を見つけることができます。表現の説​​明についてです。減算はscale変数を読み取りません。期待される結果(1.30)を取得したい場合は、次のことができます。

kent$  echo 'scale=2; (2.777 - 1.4744)/1' | bc 
1.30

/操作はscale変数を読み取ります。

于 2012-12-20T00:15:20.703 に答える
4

bc(1)マニュアルページから:

特に明記されていない限り、結果のスケールは、関連する式の最大スケールです。

1.4744スケール4があるので、それがあなたの表現に起こります。

于 2012-12-20T00:09:45.240 に答える