GNU/Linux >> Linux Esercitazione >  >> Linux

Arrotonda un numero diviso in Bash

Per eseguire l'arrotondamento nel troncamento aritmetico, aggiungi semplicemente (denom-1) al numeratore.

Esempio, arrotondamento per difetto:

N/2
M/5
K/16

Esempio, arrotondamento per eccesso:

(N+1)/2
(M+4)/5
(K+15)/16

Per arrotondare al più vicino, aggiungi (denom/2) al numeratore (le metà verranno arrotondate per eccesso):

(N+1)/2
(M+2)/5
(K+8)/16

Una buona soluzione è ottenere che il numero di round più vicino sia

var=2.5
echo $var | awk '{print int($1+0.5)}'

La logica è semplice se il valore decimale var è inferiore a 0,5, quindi il valore più vicino preso è il valore intero. Ebbene, se il valore decimale è maggiore di 0,5, viene aggiunto il valore intero successivo e poiché awk prende solo la parte intera. Problema risolto


Linux
  1. Allegando vs. Non racchiudere il valore di una variabile tra virgolette in Bash?

  2. GNU Octave, arrotonda un numero alla precisione delle unità

  3. Come posso contare il numero di caratteri in una variabile Bash

  4. come usare kill SIGUSR2 in bash?

  5. come spostare il valore dell'array in bash

Bash For Loop

Bash Shebang

Espressione sequenza Bash (intervallo)

Bash Select (Crea menu)

Bash For Loop – La guida più pratica

Script Shell/Bash per trovare i numeri primi in Linux