Wie stelle ich die Standardskala für den BC-Rechner ein?

8

Ubuntu 14.04.1 LTS

Wie stelle ich die Standardskala für den BC-Rechner ein? Jedes Mal, wenn ich bc ausführe, möchte ich, dass scale = 2 die Standardeinstellung ist. Ich möchte alle Berechnungen auf 2 Dezimalstellen beschränken. Ich habe eine Datei in meinem Heimatverzeichnis namens erstellt .bcund darin scale=2die erste Zeile eingefügt, gefolgt von einem Wagenrücklauf.

Berechtigungen für ~ / .bc sind : -rw-rw-rw-. Ist das richtig?

Dann habe ich getan set BC_ENV_ARGS=~/.bc; export BC_ENV_ARGS. Dann lief ich bc, machte einen Test wie 8.37843 * 32.190233 und bekam immer noch mehr als 2 Dezimalstellen.

Das Online-Handbuch enthielt keine Beispiele dafür. Bitte leiten Sie mich nicht dorthin.

Vielen Dank.

EDIT: Ok, wenn ich einen Test wie 78/31 mache, gibt es mir 2 Dezimalstellen. Aber wenn ich meinen Test oben mache, gibt es mir mehr als 2 Dezimalstellen. Warum ist das so? Ich möchte immer nur 2 Dezimalstellen anzeigen.

Rohrkolben
quelle

Antworten:

9

Wie Muru sagte, ist die Skala des Ergebnisses die maximale Skala des beteiligten Ausdrucks. Wenn Sie jedoch die Skalierung für die Teilung festlegen möchten (die Kürzungsstufe festlegen möchten), platzieren Sie eine Datei .bc in your home (ex. /home/yourid/.bc)und bearbeiten Sie sie so, dass sie enthält (der Dateiname kann beliebig sein).

scale=8  (whatever you want)

Dann in Ihre .cshrc-Datei einfügen

setenv BC_ENV_ARGS '/home/yourid/.bc'

Auf diese Weise ist Ihre Standardskala auf 8 eingestellt.

bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
1/3
.33333333
Chan Kim
quelle
1

Kurzer Nachtrag zu dem, was Muru für Bash- Benutzer gesagt hat :

Fügen Sie anstelle von cshrc die folgende Zeile zu Ihrem .bashrcIn hinzu /home/yourname/.bashrc:

export BC_ENV_ARGS=/home/<yourname>/.bc
htedr
quelle
0

Von man bc(Hervorhebung von mir):

Unless  specifically  mentioned  the scale of the result is the maximum
scale of the expressions involved.
....
expr / expr
      The result  of  the  expression  is  the  quotient  of  the  two
      expressions.   The  scale  of  the  result  is  the value of the
      variable scale.

Lese weiter, so scheint es , scaleist meist nur anwendbar , wenn Aufteilung beteiligt ist ( /, ^mit negativen Exponenten, %usw.).

Verwenden Sie daher entweder ein anderes Werkzeug, um es so zu drucken, wie Sie es möchten (wie printfoder awk), oder teilen Sie es durch 1:

$ echo '8.37843*32.190233/1' | bc
269.70
muru
quelle
0

~/.bashrcGeben Sie dies in Ihre ein , es gibt Ihnen zwei Dezimalstellen:

alias bc="BC_ENV_ARGS=<(echo "scale=2") \bc"

Führen Sie anschließend einen . ~/.bashrcVorgang durch, um die Änderungen zu laden.

sjas
quelle