ergebniss als integer

L

L0rd

Mitglied
Hallo,

ist ne ziemlich einfache Sache, aber ich komm einfach nicht drauf:(

ich hab ne Formel
Code:
wzeit=$(expr -0.109091*240.0+110.5454 | bc);
echo $wzeit;
Ergebnis ist ne Zahl mit nachkomastelle (wzeit=84.363560), das Problem ist das danach kommt ne if-Abfrage und es verträgt keine "nicht integer" werte.

Deswegen würd ich gern die Nachkommastelle abschneiden oder abrunden ( so genau muss es nicht sein) damit ich dann nen integer habe(wzeit=84) und es in meiner if-Abfrage nutzen kann.

kann mir da jemand helfen ?

Danke
 
Zuletzt bearbeitet:
Code:
wzeit=$(echo $wzeit | sed -e 's/\..*$//')

Gruss, Xanti
 
Danke Xanti !
es geht jetzt !



würde mich noch interessieren(nur so) ob es irgendwie auch mathematisch geht ?
(also nicht mit zeichen abschneiden)
 
L0rd schrieb:
...
würde mich noch interessieren(nur so) ob es irgendwie auch mathematisch geht ?
(also nicht mit zeichen abschneiden)

Nicht, dass ich wüsste. Dafür müsste man höhere Programmiersprachen oder mathematische Systeme (wie bc, octave, ...) bemühen. Kann mich natürlich auch irren.

Gruss, Xanti
 
Müsste doch auch gehen: Man greift sich mit sed die Stelle auf die Gerundet werden soll raus, überprüft ob >= 5 und addiert/subtrahiert entsprechend dem Ergebnis.
 
Mit 'awk' kannst du "echt runden" (d.h 84,7 => 85 und 84,2 => 84). Folgende Zeile sollte dein Problem lösen:

Code:
echo $wzeit | awk 'BEGIN{STELLEN=1} {printf"%0."STELLEN"f\n", $1}'

Mit 'BEGIN{STELLEN=1}' gibst du die Anzahl Nachkommastellen an, in deinem Fall wohl 0.

grzz
d22
 

Ähnliche Themen

Rückgabe eines Befehls

Port generieren, wenn nicht dann

Escaping-Problem

Shell if-Abfrage mit equal or greater wirft Fehlermeldung unary operator expected

bash: Fehlermeldung und Werte in Array sortieren?

Zurück
Oben