Esta pergunta e, em particular, a resposta aceita podem ser interessantes para você.
Emanuel Berg
Respostas:
56
bcnão usa ponto flutuante, mas números decimais de precisão fixos. A -lbandeira que Hauke menciona carrega uma biblioteca de matemática, por exemplo. funções trigonométricas, mas isso também significa
[...] a escala padrão é 20
scaleé uma das várias "variáveis especiais" mencionadas na página do manual. Você pode configurá-lo:
scale=4
Quando você quiser (se -lfoi usado ou não). Refere-se ao número de dígitos significativos usados em um decimal . Em outras palavras, as soluções subsequentes serão arredondadas para esse número de dígitos após a escala decimal (== precisão fixa).
A escala padrão sans -lé 0, o que significa arredondado para números inteiros.
1) Os números em bc têm uma escala. A escala de um número não deve ser confundida com o fator de escala. A mesma escala mundial é usada como uma função para consultar a escala de um número ou como um parâmetro para definir o fator de escala.
echo "scale=scale(1.1);11/10" | bc will return 1.1
2) O fator de escala determina quantos dígitos são mantidos à direita do ponto decimal ao executar operações. Se s é o fator de escala atual, sa é a escala do primeiro operando a, sb é a escala do segundo operando b, os resultados são truncados da seguinte maneira:
scale of result
a+b max(sa,sb)
a-b max(sa,sb)
a*b min(sa+sb , max(s,sa,sb))
a/b s
a%b so that a = b*quotient + remainder; remainder has sign of a
a^b min(sa×|b|, max(s,sa)); b must be integer
sqrt(a) max(s,sa)
3) Na origem, bc era um pré-processador de dc. Agora, em muitos sistemas, o bc é um programa independente.
echo "scale=4; 1/8" | bc
Respostas:
bc
não usa ponto flutuante, mas números decimais de precisão fixos. A-l
bandeira que Hauke menciona carrega uma biblioteca de matemática, por exemplo. funções trigonométricas, mas isso também significascale
é uma das várias "variáveis especiais" mencionadas na página do manual. Você pode configurá-lo:Quando você quiser (se
-l
foi usado ou não). Refere-se ao número de dígitos significativos usados em um decimal . Em outras palavras, as soluções subsequentes serão arredondadas para esse número de dígitos após a escala decimal (== precisão fixa).A escala padrão sans
-l
é 0, o que significa arredondado para números inteiros.fonte
A página de manual diz:
A compreensibilidade disso poderia ser melhorada, de fato ...
fonte
1) Os números em bc têm uma escala. A escala de um número não deve ser confundida com o fator de escala. A mesma escala mundial é usada como uma função para consultar a escala de um número ou como um parâmetro para definir o fator de escala.
2) O fator de escala determina quantos dígitos são mantidos à direita do ponto decimal ao executar operações. Se s é o fator de escala atual, sa é a escala do primeiro operando a, sb é a escala do segundo operando b, os resultados são truncados da seguinte maneira:
3) Na origem, bc era um pré-processador de dc. Agora, em muitos sistemas, o bc é um programa independente.
Fonte: [ https://plan9.io/magic/man2html/1/dc]
fonte