GNU/Linux >> Znalost Linux >  >> Linux

Zaokrouhlete dělené číslo v bash

Chcete-li provést zaokrouhlení nahoru v aritmetice zkracování, jednoduše přidejte (denom-1) do čitatele.

Příklad, zaokrouhlení dolů:

N/2
M/5
K/16

Příklad, zaokrouhlení nahoru:

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

Chcete-li provést zaokrouhlení na nejbližší, přidejte (denom/2) do čitatele (poloviny se zaokrouhlí nahoru):

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

Dobrým řešením je získat nejbližší kulaté číslo je

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

Logika je jednoduchá, pokud je desetinná hodnota var menší než 0,5, pak nejbližší hodnota je celočíselná hodnota. Pokud je desetinná hodnota větší než 0,5, přidá se další celočíselná hodnota a od awk pak vezme pouze celočíselnou část. Problém vyřešen


Linux
  1. Uzavření vs. Neuvádíte hodnotu proměnné v uvozovkách v Bash?

  2. Zvýšit číslo sestavení v Bash?

  3. Získejte stropní celé číslo z čísla v linuxu (BASH)

  1. Jak mohu spočítat počet znaků v proměnné Bash

  2. jak použít kill SIGUSR2 v bash?

  3. jak posunout hodnotu pole v bash

  1. Jak číst řetězec jako hexadecimální číslo v Bash?

  2. Jak otestuji, zda je proměnná číslo v Bash?

  3. GNU Octave, zaokrouhlete číslo na jednotky přesnosti