Saltar al contenido

Redondear un número dividido en Bash

Te damos la bienvenida a proyecto on line, ahora vas a hallar la resolución de lo que andabas buscando.

Solución:

Para redondear al truncar la aritmética, simplemente agregue (denom-1) al numerador.

Ejemplo, redondeando hacia abajo:

N/2
M/5
K/16

Ejemplo, redondeando:

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

Para redondear al más cercano, agregue (denom/2) al numerador (las mitades se redondearán hacia arriba):

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

Una buena solución es obtener el número redondo más cercano es

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

La lógica es simple si el valor decimal de var es menor que .5, entonces el valor más cercano tomado es un valor entero. Bueno, si el valor decimal es mayor que .5, entonces se agrega el siguiente valor entero y, dado que awk, solo toma la parte entera. Problema resuelto

bash no le dará el resultado correcto de 3/2 ya que no hace matemáticas de puntos flotantes. puedes usar herramientas como awk

$ awk  'BEGIN  rounded = sprintf("%.0f", 3/2); print rounded '
2

o antes de Cristo

$ printf "%.0f" $(echo "scale=2;3/2" | bc)
2

Recuerda algo, que tienes concesión de parafrasear tu experiencia si diste con el arreglo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *