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-Key: 497769

Url: https://administrator.de/contentid/497769

Printed on: April 25, 2024 at 01:04 o'clock

Mitglied: 140913
Solution 140913 Sep 24, 2019 updated at 12:51:03 (UTC)
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?
Member: rubberman
rubberman Sep 24, 2019 updated at 12:42:05 (UTC)
Goto Top
Keine Ahnung von bash, aber soweit ich weiß wird automatisch abgerundet. Somit ist das etwa so umzusetzen:
(($x+9)/10)*10

Steffen
Member: OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO Sep 24, 2019 at 12:46:55 (UTC)
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
Member: OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO Sep 24, 2019 updated at 13:22:46 (UTC)
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
Mitglied: 140913
140913 Sep 24, 2019 updated at 13:22:10 (UTC)
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.
Member: OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO Sep 24, 2019 at 13:23:44 (UTC)
Goto Top
AAh ok vielen dank! face-smile
Member: OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO Sep 24, 2019 at 13:37:15 (UTC)
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
Mitglied: 140913
140913 Sep 24, 2019 updated at 15:32:58 (UTC)
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
Member: OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO Sep 25, 2019 at 09:21:49 (UTC)
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