dabest1
dabest1

Reputation: 2502

bc is ignoring scale option

I can't figure out why bc tool sometimes ignores the scale option.

Here is an example:

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

Expected result is:

1.30

Additional information:

> 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.

Upvotes: 38

Views: 39478

Answers (2)

Kent
Kent

Reputation: 195169

as Carl pointed out, if you check man page, you can find that line. it is about expression explanations. subtraction won't read scale variable. If you want to get the expected result (1.30), you could:

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

/ operation will read scale variable.

Upvotes: 54

Carl Norum
Carl Norum

Reputation: 225032

From the bc(1) man page:

Unless specifically mentioned the scale of the result is the maximum scale of the expressions involved.

1.4744 has scale 4, so that's what happens to your expression.

Upvotes: 5

Related Questions