32

我不明白为什么 bc 工具有时会忽略 scale 选项。

这是一个例子:

> 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

正如卡尔指出的那样,如果您查看手册页,您可以找到该行。它是关于表达解释的。减法不会读取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有 scale 4,所以这就是你的表达方式。

于 2012-12-20T00:09:45.240 回答