Calculs à virgule flottante avec bc
Dans cette étape, nous allons apprendre à effectuer des calculs à virgule flottante en utilisant la calculatrice bc
. Par défaut, bc
effectue des calculs arithmétiques entiers, mais nous pouvons utiliser le paramètre scale
pour contrôler la précision décimale.
Comprendre le paramètre scale
Le paramètre scale
dans bc
détermine le nombre de décimales à utiliser dans les calculs. Voyons comment cela fonctionne :
- Essayez cette commande pour effectuer une division sans définir le paramètre
scale
:
echo "5 / 2" | bc
Le résultat sera :
2
Notez que le résultat est tronqué à un entier, pas arrondi.
- Maintenant, définissons un paramètre
scale
pour obtenir un résultat plus précis :
echo "scale=2; 5 / 2" | bc
Le résultat sera :
2.50
scale=2
indique à bc
de calculer le résultat avec 2 décimales.
Création d'un script pour des calculs complexes
Créons un script qui démontre l'utilisation de scale
et effectue des calculs plus complexes :
- Accédez au répertoire du projet si vous n'y êtes pas déjà :
cd ~/project
- Créez un nouveau fichier de script nommé
complex_calc.sh
:
touch complex_calc.sh
- Ouvrez le fichier avec l'éditeur nano :
nano complex_calc.sh
- Ajoutez le contenu suivant au fichier :
#!/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"
Ce script :
- Définit le paramètre
scale
à 2 décimales
- Effectue une multiplication : 10.5 * 4.2
- Effectue une division : 5.5 / 2
- Calcule une puissance : 3^2 (3 élevé à la puissance 2)
- Combine ces opérations avec des additions et des soustractions
- Stocke le résultat dans une variable nommée
result
- Affiche le résultat avec une étiquette descriptive
-
Enregistrez le fichier en appuyant sur Ctrl+O
, puis Entrée
, et quittez nano avec Ctrl+X
.
-
Rendez le script exécutable :
chmod +x complex_calc.sh
- Exécutez le script :
./complex_calc.sh
Vous devriez voir un résultat similaire à :
Result: 46.35
Décortiquons le calcul :
- 10.5 * 4.2 = 44.1
- 5.5 / 2 = 2.75
- 3^2 = 9
- 44.1 - 2.75 + 9 = 50.35
Attendez, le résultat attendu devrait être 50.35, mais nous avons obtenu 46.35. C'est parce que le calcul dans le script doit être corrigé. Corrigeons-le :
nano complex_calc.sh
Mettez à jour le calcul :
#!/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)"
Enregistrez les modifications et exécutez le script à nouveau :
./complex_calc.sh
Ce script mis à jour affichera le détail de chaque partie du calcul, ce qui facilitera la compréhension de l'obtention du résultat final.