Problema com cálculos

1. Problema com cálculos

Jean Santos
jeansantos056

(usa Debian)

Enviado em 23/04/2017 - 10:09h

Bom dia pessoa, estou com problemas em alguns cálculos e não entendo o porque. O mesmo formato com alguns números dá certo, e com outros dá errado.

Exemplo de quando dá certo:
$echo $((60*07))
420

Exemplo de quando dá errado:
$echo $((60*09))
bash: 60*09: valor muito grande para esta base de numeração (token de erro é "09")

Testei e quando a conta é x08 ou x09 ele retorna o erro. Se alguém souber me explicar o porque, agradeço!


  


2. Re: Problema com cálculos

Paulo Jr
Pebis

(usa Debian)

Enviado em 23/04/2017 - 10:20h



"Às vezes, pode aparecer um erro do tipo "valor muito grande para esta base de numeração (token com erro é "008")". Isso acontece porque o bash considera números que iniciam com zero como estando na base 8 (portanto, não podem ter dígitos maiores que 7). Para indicar que o valor é decimal, use "10#" na frente da variável (incluir "$" mesmo quando estiver dentro de parênteses). Por exemplo:"

http://www.monolitonimbus.com.br/matematica-com-shell-script/


3. Re: Problema com cálculos

Perfil removido
removido

(usa Nenhuma)

Enviado em 23/04/2017 - 10:36h

Use o bc para fazer os cálculos:
echo "60*08" | bc 



4. Re: Problema com cálculos

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 24/04/2017 - 20:36h

jeansantos056 escreveu:

Bom dia pessoa, estou com problemas em alguns cálculos e não entendo o porque. O mesmo formato com alguns números dá certo, e com outros dá errado.

Exemplo de quando dá certo:
$echo $((60*07))
420

Exemplo de quando dá errado:
$echo $((60*09))
bash: 60*09: valor muito grande para esta base de numeração (token de erro é "09")

Testei e quando a conta é x08 ou x09 ele retorna o erro. Se alguém souber me explicar o porque, agradeço!


Como já foi dito, o problema ocorre pq o BASH "entende" que o nº está na base octal....
Opções:
awk '{print $1*$2}' <<< "60 07"
bc <<< "60*07"

marcelo oliver








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts