PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : shell rounden mit ceil?



quinte17
02-02-2012, 19:43
hallo allerseits
ich möchte eine "einfache" möglichkeit nach folgendem Schema ganzzahlig zu runden:

(x+1)%5 == 0

wobei x=1004.28
sein kann und in dem beispiel die Zahl 1010 rauskommen sollte.
ich komm im moment nicht drauf das vernünftig zu machen.
ich würde das gerne innerhalb eines bash-scripts verwenden können, ohne ein neues script dafür erstellen zu müssen. ob dafür nun awk oder sonstwas verwendet wird ist mir wieder egal. wäre auch mit python zufrieden, wenn der sich mit einer zeile so aufrufen lässt dass er das gewünschte tut.

ich suche grad schon und habe einiges gefunden, das gefällt mir aber grad nicht.. weil dafür meist eine neue datei erzeugt werden muss

danke schonmal für jede art von anregung

quinte17
02-02-2012, 21:00
so, habe nun eine möglichkeit:


#!/bin/bash

ceiling() {
float_in=$1
ceil_val=${float_in/.*}
ceil_val=$((ceil_val+1))
echo -n $ceil_val
}
a=$1
echo eingabe: $a
a=$(ceiling $a)
b=$(expr $a % 5)
if [ $b -eq 0 ]
then
a=$(expr $a + 5)
else
tmp=$(expr 5 - $a % 5)
a=$(expr $a + $tmp)
fi
echo ausgabe: $a

funktion ceiling ist von http://stackoverflow.com/questions/1362298/converting-variable-to-integer