web-dev-qa-db-fra.com

bc ignore l'option d'échelle

Je ne peux pas comprendre pourquoi l'outil bc ignore parfois l'option d'échelle.

Voici un exemple:

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

Le résultat attendu est:

1.30

Information additionnelle:

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

comme Carl l'a souligné, si vous consultez la page de manuel, vous pouvez trouver cette ligne. il s'agit d'explications d'expression. la soustraction ne lira pas la variable scale. Si vous souhaitez obtenir le résultat attendu (1.30), vous pouvez:

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

/ l'opération lira la variable scale.

29
Kent

A partir de la page man bc(1) :

Sauf mention contraire, l'échelle du résultat est l'échelle maximale des expressions impliquées.

1.4744 a une échelle 4, c'est donc ce qui arrive à votre expression.

3
Carl Norum