Formato de moeda em Shell Script [RESOLVIDO]

1. Formato de moeda em Shell Script [RESOLVIDO]

Atila Medeiros Leite Lintz
amllintz

(usa Debian)

Enviado em 03/11/2014 - 11:48h

Bom Dia.

Sou iniciante em shell script e fiz um script para calcular juros e não sei como colocar o valor em moeda nele.



Segue o script:

#!/bin/bash
#Atila
#
clear
echo "Quantos reais vou pegar de emprestimo?"
read emp
echo
echo "Qual porcentagem de juros vou ter que pagar?"
read jur
echo
echo "Vou dividir em quantas parcelas?"
read par
echo
echo "Cada uma das $par parcelas com juros de "$jur"% é: R$"$((($emp+(($emp/100)*$jur))/$par))""
echo
echo "O valor total a pagar do emprestimo é: R$"$(($emp+(($emp/100)*$jur)))""
echo



  


2. MELHOR RESPOSTA

Marcos Paulo Ferreira
daemonio

(usa Slackware)

Enviado em 03/11/2014 - 13:04h

O $(()) não trabalha com números com casas decimais. Então:

echo $((123.444/3))

retorna erro devido ao '.'. Se o erro que aparece é parecido com esse:


syntax error: invalid arithmetic operator


então o erro é realmente devido às casas decimais e você deve usar outra coisa sem ser o $(()).

Como alternativa, use a calculadora externa bc. O uso mais comum é passar a operação via pipe e obter o resultado em uma variável.


VALOR_PARCELA=$(echo "(($emp+(($emp/100)*$jur))/$par)" | bc -l)
echo $VALOR_PARCELA


nesse caso os números podem conter casas decimais. Para limitar o número de casas, use o scale=N antes da expressão:


VALOR_PARCELA=$(echo "scale=3; (($emp+(($emp/100)*$jur))/$par)" | bc -l)


é resultado será do tipo: 14.560, 11.123, 10.009, isso é, sempre três casas depois da vírgula.

t+

3. Re: Formato de moeda em Shell Script [RESOLVIDO]

Atila Medeiros Leite Lintz
amllintz

(usa Debian)

Enviado em 05/11/2014 - 11:56h

Tem alguma coisa que fiz errado.

A saida foi essa:

Quantos reais vou pegar de emprestimo?
1000

Qual porcentagem de juros vou ter que pagar?
23

Vou dividir em quantas parcelas?
10

./test: command substitution: linha 15: erro de sintaxe próximo do `token' não esperado `('
./test: command substitution: linha 15: `$emp+(($emp/100)*$jur))/$par"'
Cada uma das 10 parcelas com juros de 23 % é: R$

./test: command substitution: linha 18: erro de sintaxe próximo do `token' não esperado `('
./test: command substitution: linha 18: `$emp+(($emp/100)*$jur))"'
O valor total a pagar do emprestimo é: R$


O Codigo ficou assim:

clear
echo "Quantos reais vou pegar de emprestimo?"
read emp
echo
echo "Qual porcentagem de juros vou ter que pagar?"
read jur
echo
echo "Vou dividir em quantas parcelas?"
read par
echo
val_par=$(echo "scale=2; $($emp+(($emp/100)*$jur))/$par" | bc -l)
echo "Cada uma das $par parcelas com juros de $jur % é: R$ $val_par"
echo
val_emp=$(echo "scale=2; $($emp+(($emp/100)*$jur))" | bc -l)
echo "O valor total a pagar do emprestimo é: R$ $val_emp"
echo






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts