Configurando o campo de entrada para 2 pontos decimais (preço)

0

No momento, estou tentando inserir os preços em um arquivo .txt.

Então eu quero quando a entrada do usuário: 1.1

Em vez de 1.1 , quero que ele se torne 1.10 . Como ficaria melhor para a mesa que estou tentando fazer no futuro. Eu também gostaria de arredondar para cima ou para baixo se for mais de 3 casas decimais. ( Obrigado john1024 pela correção )

    
por pandora 19.01.2018 / 03:56

1 resposta

0

Para ler um preço e coagi-lo a ter duas casas decimais, tente:

read -p "Enter the price: " var
printf -v var '%.2f' "$var"

O formato %.2f informa printf para usar dígitos com duas casas decimais.

Exemplos:

$ read -p "Enter the price: " var; printf -v var '%.2f' "$var"; echo "var=$var"
Enter the price: 1.2
var=1.20
$ read -p "Enter the price: " var; printf -v var '%.2f' "$var"; echo "var=$var"
Enter the price: 1.123
var=1.12

Nota: O Bash pode formatar números com pontos decimais, mas não pode fazer adição, subtração ou outra aritmética em tais números de ponto flutuante. Para isso, você precisará de outras ferramentas como awk ou bc ou zsh .

    
por 20.01.2018 / 09:22