Como arredondar para 2 casas decimais no Bash
Bash é um shell conhecido e uma linguagem de comando usada para executar tarefas com eficiência. Ao trabalhar no script Bash e brincar explicitamente com os números flutuantes, muitas vezes é necessário arredondar os números flutuantes. Neste post, aprenderemos alguns comandos e técnicas de script Bash para arredondar o número para 2 casas decimais.
Ao exibir os números ou variáveis que incluem números flutuantes, diferentes comandos podem imprimir o texto ou variáveis como echo, print e printf. Embora possamos mostrar as variáveis e números diretamente de tais comandos, no entanto, o único comando que possui alguns recursos e capacidades extras é o comando printf que diz respeito ao nosso objetivo.
comando printf
O comando printf é semelhante à função printf() na linguagem C. Ele nos permite formatar e imprimir os argumentos.
Sintaxe
A sintaxe para escrever o comando printf no bash é:
No comando printf, primeiro temos que fornecer a string entre aspas e depois podemos fornecer os argumentos.
Exemplo
Vamos primeiro imprimir um texto simples usando o comando printf:
Você pode ver que acabou de imprimir a string, mas o nome de usuário e o nome do host vêm logo após a string.
Para obter a string em uma única linha, podemos usar o caractere de nova linha ‘ ' para ter a saída limpa e clara:
Agora temos uma saída limpa e clara.
Agora, vamos ver como fornecer os argumentos para dar a este comando printf um número flutuante e arredondar.
Para fornecer os argumentos, precisamos usar o especificador (%s) na string que será substituído pelos argumentos fornecidos. Por exemplo:
Tudo bem, agora você entendeu o uso principal e a funcionalidade do comando printf. Vamos fornecer um número flutuante e ver como arredondar para 2 casas decimais.
Diretiva de Precisão
O modificador de precisão é usado para arredondar um número flutuante.
A sintaxe para escrever um modificador de precisão é fornecer o número de casas decimais que você deseja arredondar o número seguido do ponto (.).
Para arredondar um número flutuante para 2 casas decimais, você pode executar o comando printf conforme mostrado abaixo:
Você pode ver na captura de tela em anexo que o número “4,4444” é arredondado para “4,44”, como desejávamos.
Da mesma forma, em vez de fornecer diretamente um número, podemos fornecer uma variável aqui também.
printf "%.2f \n" $num
Para fornecer vários valores:
num2=4.4444
printf "%.2f %.3f \n" $num1 $num2
Se você ainda quiser usar o comando echo e arredondar o número, nesse caso, você deve usar o comando echo com o comando awk para arredondar o número conforme mostrado abaixo:
OU
echo num | awk '{printf("%.2f \n",$1)}'
Conclusão
Esta postagem contém um guia detalhado e profundo sobre o comando printf e aprendemos a arredondar qualquer número para 2 casas decimais usando o comando printf. Além disso, tentamos vários exemplos para ter um conhecimento sólido sobre como usar o modificador de precisão para arredondar um número usando o comando printf. Além disso, aprendemos a arredondar qualquer número flutuante usando o comando echo e awk.