Numerojen pyöristäminen

Bash:
Numerojen pyöristäminen

Kuinka:

Tässä tietoisku Bashin pyöristämisestä:

# Pyöristä alaspäin käyttäen 'floor' bc:ssä
echo "scale=0; 3.49/1" | bc

# Pyöristä ylöspäin käyttäen 'ceiling' bc:ssä
echo "scale=0; 3.01/1" | bc -l

# Pyöristä lähimpään kokonaislukuun käyttäen printf
printf "%.0f\n" 3.49

# Kikka pyöristää lähimpään kokonaislukuun käyttäen bc:tä
echo "(3.49+0.5)/1" | bc

Esimerkkitulosteet—suoraan terminaalista:

3  # Pyöristetty alas (floor)
4  # Pyöristetty ylös (ceiling)
3  # Pyöristetty lähimpään (printf-käskyllä)
3  # Pyöristetty lähimpään (bc:llä)

Syväsukellus

Aikoinaan, kun Bash-skripteissä ei ollut bc:tä tai printf:iä matematiikan temppuihin, vanhan koulukunnan täytyi turvautua ulkoisiin työkaluihin tai nokkeliin kiertoteihin. Nyt bc mahdollistaa tarkan matematiikan tekemisen. On kuitenkin hyvä muistaa, että bc ei pyöristä oletusarvoisesti—se suorittaa alaspäin pyöristämisen. Scale-osio määrittää desimaalipisteen käsittelyn.

Vaihtoehtoja? Voisit käyttää awk:ia pyöristämiseen vaihtamatta bc:hen tai käsitellä perl:iä painavampien matematiikan tarpeiden kanssa. Masokisteille, mene puhdas Bash esimerkiksi iteratiivisella merkkijonomanipulaatiolla – mutta miksi?

Yksityiskohtien osalta, bc ei vain pyöristä, se tekee paljon matematiikkajuttuja—skaalaa, sinittää, neliöjuurittaa, sinä nimität sen. printf on enemmän tekstien muotoilusta, mutta hei, se pyöristää numeroita, joten emme valita.

Katso Myös

Niille, jotka haluavat lisää: