BC - forma normal de saída?

3

Eu tenho um grande número:

2923174917395723957

isso seria:

2,923*10^18

existem parâmetros em bc que darão este OUTPUT?
por exemplo:

$ echo '2923174917395723956 + 1' | bc
2,923*10^18
$ 

Ou algo semelhante ... o ponto é que ele deve ter um breve olhar
Obrigado!

    
por LanceBaynes 05.05.2011 / 09:39

2 respostas

6

Experimente o comando printf:

$ printf "%e\n" 2923174917395723957
2.923175e+18

Em sua localidade, ele deve usar, em vez de., é claro. Você também pode controlar o formato com mais precisão, como:

$ printf "%.3e\n" 2923174917395723957
2.923e+18

Algumas shells como o bash têm um printf chamado nativo, que pode ser diferente de qualquer comando printf que vem com o sistema, mas, em geral, você não deve notar qualquer diferença com comandos simples como acima. Você também pode usar o printf do Perl, que será bastante consistente.

$ perl -e 'printf "%.3e\n", 2923174917395723957'
2.923e+18
    
por 05.05.2011 / 12:44
0

Os números bc são representados como decimais (na verdade, na base 100, um dígito por byte), e não como os processadores fazem. Os números são impressos conforme são armazenados no registro interno bc. A impressão funciona como nenhuma opção para imprimir números com expoente. Mas em tudo é possível. Você pode fazer sua própria função para formatar a saída de números. Você pode armazenar suas próprias funções em um arquivo e adicionar o caminho do arquivo à variável BC_ENV_ARGS, então as funções estarão disponíveis cada vez que você invocar bc.

Verifique o link para a função printfe ...

    
por 07.05.2017 / 18:37

Tags