Pular para o conteúdo

Comando printf [RESOLVIDO]

Responder tópico
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
  • Denunciar
  • Indicar

1. Comando printf [RESOLVIDO]

Enviado em 03/01/2014 - 15:10h

root@hotpc:/home/brainiac# printf "%.3f\n" `echo "scale=2 ; 100/6" | bc`
bash: printf: 16.66: invalid number
0,000


Caros amigos o comando acima deveria retornar 33.3300.

Como resolvo?



Sei que algo relacionado ao Pt-Br do Debian , pois:

root@hotpc:/home/brainiac# printf "%.2f\n" 32.3
bash: printf: 32.3: invalid number
0,00

root@hotpc:/home/brainiac# printf "%.2f\n" 32,3
32,30




Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

2. Re: Comando printf [RESOLVIDO]

Melhor resposta

Enviado em 03/01/2014 - 16:12h

Caros amigos o comando acima deveria retornar 33.3300.


!? Como se "100 / 6" é igual a "16.6666..."!

Você está confundindo as coisas cara! Vamos lá, faça:


LANG=C printf "%.3f\n" `echo "scale=2; 100/6" | bc` 

ou
LANG=C printf "%.3f\n" $(bc <<< scale=2\;100/6) 


1 - LANG=C força o formato de saída para o padrão POSIX
2 - Note que "%.3f" determina a quantidade de casas decimais que serão mostradas após o ponto! Nesse caso serão 3.

Ah, note que no printf você determinou como 3 a quantidade de casas decimais na saída, MAS no bc você determinou 2 como quantidade de saída, portanto o printf irá completar com zeros o restante que falta! ;)



3. Re: Comando printf [RESOLVIDO]

Enviado em 03/01/2014 - 16:42h

VAleu Smarcell

A ap estava impressa errada com 33.3300, mas sem o macete do LANG=C

não conseguiria, valeu

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Responder tópico

Entre na sua conta para responder.

Fazer login para responder