shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Re: A função scale no comando bc não está reduzindo p


From: Emmanuel Oliveira
Subject: Re: [shell-script] Re: A função scale no comando bc não está reduzindo para dois dígitos
Date: Sat, 2 May 2015 11:52:07 +0000 (UTC)

Olá Itamar e Fernando,

Agradeço imensamente a ajuda e a solução propostas.

Já resolve o problema. 

Vamos ver se mais algum colega teria alguma sugestão.

Muito obrigado mesmo pela força.

Emmanuel


De: "Fernando Mercês address@hidden [shell-script]" <address@hidden>
Para: "address@hidden" <address@hidden>
Enviadas: Sábado, 2 de Maio de 2015 2:20
Assunto: Re: [shell-script] Re: A função scale no comando bc não está reduzindo para dois dígitos

 
Pois é, o resultado vai ser sempre com o scale do maior número de entrada no caso de multiplicação. O dc também funciona assim, mas uma vez tendo o este resultado, como o Itamar sugeriu, basta usar o printf. Eu o usaria no lugar do echo:

$ yuan=6.2032
$ limite_compra_1=$(echo "$yuan * 4.5" | bc)
$ printf '%.2f\n' $limite_compra_1
27.91

Mas é o mesmo que o Itamar sugeriu.

Abraços.


Att,

Fernando Mercês
Linux Registered User #432779
www.mentebinaria.com.br
------------------------------------
"Ninguém pode ser escravo de sua identidade; quando surge uma possibilidade de mudança é preciso mudar". (Elliot Gould)



On Sat, May 2, 2015 at 12:14 AM, address@hidden [shell-script] <address@hidden> wrote:
 
Também costumo ter problemas desse gênero com bc no uso do scale, então costumo usar:

Com printf do bash:
LIMITE_COMPRA_01=$( LANG=C printf "%.2f\n" $( echo "$COTACAO_YUAN * 4.5" | bc ) )

Ou com awk:
LIMITE_COMPRA_01=$( echo "$COTACAO_YUAN 4.5" | awk '{printf "%.2f\n", $1 * $2}' )

É uma alternativa.

Serve?

[]'s
Itamar




reply via email to

[Prev in Thread] Current Thread [Next in Thread]