Bash-Scripting: Mit Gleitkommazahlen rechnen?

Bash, Shell, PHP, Python, Perl, CGI
dodolin
Posts: 3840
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe

Bash-Scripting: Mit Gleitkommazahlen rechnen?

Post by dodolin »

Jetzt muss ich auch mal was fragen: :)

Also, arithmetische Rechnungen sind mit Bash ja kein Problem, z.B. so:

Code: Select all

dominik@trinity:~$ echo $((100 / 5))
20
Leider scheint es, als könnte Bash nur mit Integern rechnen. Beispiel:

Code: Select all

dominik@trinity:~$ echo $((100 / 67))  
1
Aus bash(1)

Code: Select all

ARITHMETIC EVALUATION
       The shell allows arithmetic expressions to  be  evaluated,
       under  certain  circumstances (see the let builtin command
       and Arithmetic Expansion).  Evaluation  is  done  in  long
       integers  with no check for overflow, though division by 0
       is trapped and flagged as an  error.   The  operators  and
       their  precedence and associativity are the same as in the
       C language.  The following list of  operators  is  grouped
       into levels of equal-precedence operators.  The levels are
       listed in order of decreasing precedence.
Heißt das also, wenn ich mit Kommazahlen (ein oder zwei Nachkommastellen würden mir ja schon reichen...) rechnen will, dann müsste ich auf eine andere Skriptsprache wie z.B. Perl umsteigen?

Oder kennt hier jemand eine Möglichkeit, das mit der Bash zu machen?

Wäre nämlich nicht schlecht, sonst muss ich mein ganzes Skript in Perl nochmal neu schreiben... :cry:
olaf.dietsche
Posts: 401
Joined: 2002-12-19 02:06
Location: Siegburg

Re: Bash-Scripting: Mit Gleitkommazahlen rechnen?

Post by olaf.dietsche »

Du kannst auch nur einen Teil in perl machen

Code: Select all

perl -e 'print 100 / 67;'
dodolin
Posts: 3840
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe

Re: Bash-Scripting: Mit Gleitkommazahlen rechnen?

Post by dodolin »

Du kannst auch nur einen Teil in perl machen
Ah, danke, danke!!!

Klar, das ist ne prima Idee, perl -e. - War mir irgendwie komplett entfallen.
Dann mache ich einfach die Berechnungen (sind nicht so viele) in Perl, dann wirds genauer.

BTW: Falls das jemand brauchen kann, ist ein Auswertungsscript für Spamassassin-Mails und die Erkennungsrate, habe ich online gestellt unter http://users.dodolin.de/~dominik/scripts/spamassassin/ (sa-stats)