Como faço para que bc inicie frações decimais com um zero à esquerda?

1

Como faço para obter bc para iniciar frações decimais com um zero à esquerda?

$ bc <<< 'scale=4; 1/3'
  .3333

Eu quero 0,3333.

    
por PSkocik 25.06.2016 / 19:02

2 respostas

1

bc nativamente não suportam adicionar zero.

A solução alternativa é:

echo 'scale=4; 1/3' | bc -l | awk '{printf "%.4f\n", $0}'

0.3333

"\ n" - adicione uma nova linha.

"% f" - ponto flutuante

"%. 4f" - o número de dígitos a mostrar após o ponto decimal. aqui é 4.

    
por 25.06.2016 / 20:31
1

Infelizmente bc está escrito de tal forma que você não pode. Esta declaração também se aplica ao seu vizinho dc . As pessoas, como uma solução, geralmente sugerem usar alguma ferramenta de processamento de texto para alterar bc output, ou usar uma ferramenta completamente diferente como perl ou python que tem sintaxe diferente, mas para mim elas parecem ser muito pesadas para tal tarefa simples.

Nas suas outras perguntas, parece que você é zsh user, então sugiro zcalc , que tem uma sintaxe muito semelhante para operações básicas como bc :

$ zcalc -e '1/3'
0.333333

Primeiro, você precisa carregar essa função (por exemplo, em .zshrc ) e, provavelmente, talvez queira sempre tratar todos os números como um ponto flutuante com a opção -f :

autoload -U zcalc
alias zcalc='zcalc -f'

Como bônus, você pode definir um prompt especial para a calculadora com o parâmetro ZCALCPROMPT . Para detalhes, consulte man zshcontrib .

    
por 25.06.2016 / 21:06

Tags