Pesquisa de site

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 é:

printf "string" arguments

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:

printf "Hello from Linuxhint."

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:

printf "Hello from Linuxhint \n"

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:

printf "User number: %s \n" 24

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 (.).

"%.2f"

Para arredondar um número flutuante para 2 casas decimais, você pode executar o comando printf conforme mostrado abaixo:

printf "%.2f \n" 4.4444

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.

num=4.4444

printf "%.2f \n" $num

Para fornecer vários valores:

num1=3.333

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:

echo "3.333" | awk '{printf("%.2f \n",$1)}'

OU

num=3.333

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.

Artigos relacionados: