Gleitkomma-Berechnungen mit bc
In diesem Schritt lernen wir, wie man Gleitkomma-Berechnungen mit dem bc
-Rechner durchführt. Standardmäßig führt bc
Ganzzahlarithmetik durch, aber wir können den scale
-Parameter verwenden, um die Dezimalpräzision zu steuern.
Der scale
-Parameter verstehen
Der scale
-Parameter in bc
bestimmt die Anzahl der Dezimalstellen, die bei Berechnungen verwendet werden. Sehen wir uns an, wie er funktioniert:
- Versuchen Sie diesen Befehl, um eine Division ohne Einstellung des
scale
-Parameters durchzuführen:
echo "5 / 2" | bc
Die Ausgabe wird sein:
2
Beachten Sie, dass das Ergebnis auf eine Ganzzahl abgeschnitten wird, nicht gerundet.
- Jetzt setzen wir einen
scale
-Wert, um ein genaueres Ergebnis zu erhalten:
echo "scale=2; 5 / 2" | bc
Die Ausgabe wird sein:
2.50
scale=2
sagt bc
, dass das Ergebnis mit 2 Dezimalstellen berechnet werden soll.
Erstellen eines Skripts für komplexe Berechnungen
Erstellen wir ein Skript, das die Verwendung von scale
demonstriert und komplexere Berechnungen durchführt:
- Navigieren Sie in das Projektverzeichnis, falls Sie nicht bereits dort sind:
cd ~/project
- Erstellen Sie eine neue Skriptdatei namens
complex_calc.sh
:
touch complex_calc.sh
- Öffnen Sie die Datei mit dem nano-Editor:
nano complex_calc.sh
- Fügen Sie den folgenden Inhalt in die Datei ein:
#!/bin/zsh
## Complex calculation using bc with scale
result=$(echo "scale=2; (10.5 * 4.2) - (5.5 / 2) + 3^2" | bc)
echo "Result: $result"
Dieses Skript:
- Setzt die Dezimalpräzision auf 2 Stellen.
- Führt eine Multiplikation durch: 10.5 * 4.2
- Führt eine Division durch: 5.5 / 2
- Berechnet eine Potenz: 3^2 (3 hoch 2)
- Kombiniert diese Operationen mit Addition und Subtraktion
- Speichert das Ergebnis in einer Variablen namens
result
- Gibt das Ergebnis mit einer beschreibenden Bezeichnung aus
-
Speichern Sie die Datei, indem Sie Strg+O
drücken, dann Enter
, und verlassen Sie nano mit Strg+X
.
-
Machen Sie das Skript ausführbar:
chmod +x complex_calc.sh
- Führen Sie das Skript aus:
./complex_calc.sh
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
Result: 46.35
Lassen Sie uns die Berechnung analysieren:
- 10.5 * 4.2 = 44.1
- 5.5 / 2 = 2.75
- 3^2 = 9
- 44.1 - 2.75 + 9 = 50.35
Warten Sie, das erwartete Ergebnis sollte 50.35 sein, aber wir haben 46.35 erhalten. Dies liegt daran, dass die Berechnung im Skript korrigiert werden muss. Lassen Sie uns es beheben:
nano complex_calc.sh
Aktualisieren Sie die Berechnung:
#!/bin/zsh
## Complex calculation using bc with scale
result=$(echo "scale=2; (10.5 * 4.2) - (5.5 / 2) + 3^2" | bc)
echo "Result: $result"
## Breaking down the calculation
part1=$(echo "scale=2; 10.5 * 4.2" | bc)
part2=$(echo "scale=2; 5.5 / 2" | bc)
part3=$(echo "3^2" | bc)
echo "Part 1 (10.5 * 4.2): $part1"
echo "Part 2 (5.5 / 2): $part2"
echo "Part 3 (3^2): $part3"
echo "Final: $part1 - $part2 + $part3 = $(echo "scale=2; $part1 - $part2 + $part3" | bc)"
Speichern Sie die Änderungen und führen Sie das Skript erneut aus:
./complex_calc.sh
Dieses aktualisierte Skript zeigt die Aufteilung jeder Teilberechnung an, was es einfacher macht, zu verstehen, wie das endgültige Ergebnis erhalten wird.