oiooiooioiioooiioiioiooo
Goto Top

Aufrunden mit printf oder auch gerne anders

Guten Tag,

ich versuche gerade für einen Bush Skript eine Funktion zu finden womit ich Zahlen wie zum Beispiel wie folgt aufrunden kann.

71 ≈ 80
85 ≈ 90
64 ≈ 70
121 ≈ 130

Hat jemand von euch eine Idee?

Viele Grüße

Ich

Content-ID: 497769

Url: https://administrator.de/forum/aufrunden-mit-printf-oder-auch-gerne-anders-497769.html

Ausgedruckt am: 07.04.2025 um 12:04 Uhr

140913
Lösung 140913 24.09.2019 aktualisiert um 14:51:03 Uhr
Goto Top
eine Funktion zu finden
Im Matheunterricht nicht aufgepasst ?
zahl=76
echo $(((($zahl + 9)/10)*10))
für einen Bush Skript
Indianer oder Aborigines?
rubberman
rubberman 24.09.2019 aktualisiert um 14:42:05 Uhr
Goto Top
Keine Ahnung von bash, aber soweit ich weiß wird automatisch abgerundet. Somit ist das etwa so umzusetzen:
(($x+9)/10)*10

Steffen
OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO 24.09.2019 um 14:46:55 Uhr
Goto Top
Zitat von @140913:

Im Matheunterricht nicht aufgepasst ?

Indianer oder Aborigines?

Nee war auf eine Baumschule :p

Vielen lieben Dank.

Und weiter schreiben… face-smile

Ich
OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO 24.09.2019 aktualisiert um 15:22:46 Uhr
Goto Top
Zitat von @140913:

echo $(((($zahl )/10+1)*10))

Verzeihung, etwas ist mir echt noch entgangen zu erwähnen.

Die Zahlen welche bereits die 0 hinten haben, dürfen nicht angefasst werden. Am liebsten, soll in diesem Fall nur eine 0 stehen bleiben.

Viele Grüße

Ich
140913
140913 24.09.2019 aktualisiert um 15:22:10 Uhr
Goto Top
Zitat von @OIOOIOOIOIIOOOIIOIIOIOOO:
Die Zahlen welche bereits die 0 hinten haben, dürfen nicht angefasst werden.
Deswegen hatte ich es noch nachträglich angepasst , s.o.
OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO 24.09.2019 um 15:23:44 Uhr
Goto Top
AAh ok vielen dank! face-smile
OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO 24.09.2019 um 15:37:15 Uhr
Goto Top
Ich kann machen was ich will, in diese Zeile bekomme ich es jedoch leider nicht eingearbeitet:

 awk '{split($0,a,""); print (a[1]+a[2]*3+a[3]+a[4]*3+a[5]+a[6]*3+a[7]+a[8]*3+a[9]+a[10]*3+a[11]+a[12]*3)}'  

Eigentlich müsste es so aussehen, aber es spuckt mir komische Werte aus.

awk '{split($0,a,""); print (((((a[1]+a[2]*3+a[3]+a[4]*3+a[5]+a[6]*3+a[7]+a[8]*3+a[9]+a[10]*3+a[11]+a[12]*3)+9)/10)*10))} '  

Viele Grüße

Ich
140913
140913 24.09.2019 aktualisiert um 17:32:58 Uhr
Goto Top
Naja du vergleichst Birnen mit Äpfeln, das da oben ist Bash deins is awk. Bash rundet hier immer ab weil Basisberechnungen auf der Bash nur ganzzahlige Integerwerte nutzt, awk nicht. Da musst du schon auf Integer runden mit int() da er sonst mit float Werten rechnet.

Beispiel:
screenshot
OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO 25.09.2019 um 11:21:49 Uhr
Goto Top
Guten Morgen,

vielen Dank für die Aufklärung. Wieder was dazugelernt.

Ein Praktikant hat mir geholfen deine Zeile etwas zu verstehen face-smile

Gesucht habe ich dies:

awk -F " " '{n=split($0,a,""); b=0; for(i=1;i <= n;i++){c = 1; if(i%2 == 0){ c = 3} b = b+a[i] * c;} print $0((10-b%10)%10);}'  

Viele Grüße

Ich