Diese Frage und insbesondere die akzeptierte Antwort könnte Sie interessieren.
Emanuel Berg
Antworten:
56
bcFließkommazahlen werden nicht verwendet, es werden jedoch Dezimalzahlen mit fester Genauigkeit verwendet. Die -lFlagge, die Hauke erwähnt, lädt eine Mathematikbibliothek für z. trig funktioniert aber es heißt auch
[...] die Standard - Skala ist 20
scaleist eine von mehreren "Spezialvariablen", die in der Manpage erwähnt werden. Sie können es einstellen:
scale=4
Wann immer Sie wollen (ob -lverwendet oder nicht). Es bezieht sich auf die Anzahl der signifikanten Stellen, die in einer Dezimalstelle verwendet werden . Mit anderen Worten, nachfolgende Lösungen werden auf diese Anzahl von Stellen nach der Dezimalskala gerundet (== feste Genauigkeit).
Die Standardskala ohne -list 0, dh auf ganze Zahlen gerundet.
1) Zahlen in bc haben eine Skala. Die Skala einer Zahl sollte nicht mit dem Skalierungsfaktor verwechselt werden. Dieselbe Welt-Skalierung wird als Funktion zum Abfragen der Skalierung einer Zahl oder als Parameter zum Festlegen des Skalierungsfaktors verwendet.
echo "scale=scale(1.1);11/10" | bc will return 1.1
2) Der Skalierungsfaktor bestimmt, wie viele Stellen bei Operationen rechts vom Dezimalpunkt stehen. Wenn s der aktuelle Skalierungsfaktor ist, sa die Skalierung des ersten Operanden a ist, sb die Skalierung des zweiten Operanden b ist, werden die Ergebnisse wie folgt gekürzt:
scale of result
a+b max(sa,sb)
a-b max(sa,sb)
a*b min(sa+sb , max(s,sa,sb))
a/b s
a%b so that a = b*quotient + remainder; remainder has sign of a
a^b min(sa×|b|, max(s,sa)); b must be integer
sqrt(a) max(s,sa)
3) Ursprünglich war bc ein Präprozessor von dc. Heute ist bc auf vielen Systemen ein eigenständiges Programm.
echo "scale=4; 1/8" | bc
Antworten:
bc
Fließkommazahlen werden nicht verwendet, es werden jedoch Dezimalzahlen mit fester Genauigkeit verwendet. Die-l
Flagge, die Hauke erwähnt, lädt eine Mathematikbibliothek für z. trig funktioniert aber es heißt auchscale
ist eine von mehreren "Spezialvariablen", die in der Manpage erwähnt werden. Sie können es einstellen:Wann immer Sie wollen (ob
-l
verwendet oder nicht). Es bezieht sich auf die Anzahl der signifikanten Stellen, die in einer Dezimalstelle verwendet werden . Mit anderen Worten, nachfolgende Lösungen werden auf diese Anzahl von Stellen nach der Dezimalskala gerundet (== feste Genauigkeit).Die Standardskala ohne
-l
ist 0, dh auf ganze Zahlen gerundet.quelle
Manpage sagt:
Die Verständlichkeit davon könnte in der Tat verbessert werden ...
quelle
1) Zahlen in bc haben eine Skala. Die Skala einer Zahl sollte nicht mit dem Skalierungsfaktor verwechselt werden. Dieselbe Welt-Skalierung wird als Funktion zum Abfragen der Skalierung einer Zahl oder als Parameter zum Festlegen des Skalierungsfaktors verwendet.
2) Der Skalierungsfaktor bestimmt, wie viele Stellen bei Operationen rechts vom Dezimalpunkt stehen. Wenn s der aktuelle Skalierungsfaktor ist, sa die Skalierung des ersten Operanden a ist, sb die Skalierung des zweiten Operanden b ist, werden die Ergebnisse wie folgt gekürzt:
3) Ursprünglich war bc ein Präprozessor von dc. Heute ist bc auf vielen Systemen ein eigenständiges Programm.
Quelle: [ https://plan9.io/magic/man2html/1/dc]
quelle