Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 04/10/2008, à 19:13

anonyme1

[résolu] bash - opération avec exposant non entier

Bonjour

Comment puis-je réaliser une opération impliquant un non-entier :

echo "656*(787/588)^(0.65)" | bc -l

ne donne pas un résultat correct puisque 9/10 n'est pas un entier

Merci

Dernière modification par redrum (Le 05/10/2008, à 09:09)

#2 Le 04/10/2008, à 22:21

nicolas66

Re : [résolu] bash - opération avec exposant non entier

La commande `bc' ne gère pas les nombres non-entiers (nombres flottants) par défaut. Il convient donc de lui indiquer via l'instruction `scale=n', où n désigne le nombre de décimales.

Cependant, cette commande ne gère pas les puissances non entières. Je te conseille donc de plutôt faire appel à de "vrais" langages comme le C ou python. Exemple en python :

python -c "print 656*(787.0/588.0)**0.65"

Note : essayes de prendre l'habitude de lire les pages de man associées avant de venir demander de l'aide wink

Dernière modification par nicolas66 (Le 04/10/2008, à 22:24)


"The computer was born to solve problems that did not exist before." (B. Gates)

Hors ligne

#3 Le 05/10/2008, à 00:23

Link31

Re : [résolu] bash - opération avec exposant non entier

nicolas66 a écrit :

Cependant, cette commande ne gère pas les puissances non entières.

Pas sans quelques manipulations, mais ça reste possible :
http://en.wikipedia.org/wiki/Bc_(Unix)# … _in_GNU_bc

Dernière modification par Link31 (Le 05/10/2008, à 00:23)

Hors ligne

#4 Le 05/10/2008, à 01:38

nicolas66

Re : [résolu] bash - opération avec exposant non entier

@Link31 : au temps pour moi, j'avais pas pensé à cette astuce smile.
@redrum : dans un premier temps, tu peux déjà utiliser une extension de `bc' sous GPL. Elle fournit pas mal de fonctions mathématiques.

Dernière modification par nicolas66 (Le 05/10/2008, à 01:39)


"The computer was born to solve problems that did not exist before." (B. Gates)

Hors ligne

#5 Le 05/10/2008, à 09:06

anonyme1

Re : [résolu] bash - opération avec exposant non entier

Bonjour nicolas66, bonjour Link31

@nicolas66,

Merci pour ton aide précieuse.

@link31,

Merci pour ton astuce, cela me rappelle les joies de la terminale scientifique!

@ tous,

La réponse au problème est :

echo "656*e(0.65*l(787/588))" | bc -l

Dernière modification par redrum (Le 08/10/2008, à 14:45)