Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida sobre funcionamento de "maior" e "maior ou igual"

Ao realizar a conta exposta abaixo é retornado que o valor de (0.9/1)-1 é -0.09999999999999998 e não -0,1. Isso teria retornado um resultado diferente no caso citado, que seria a última opção "corte de gastos", sabem me dizer o porquê isso está ocorrendo?

2 respostas

Oi Lucas, tudo bem?

Aqui tem uma explicação sobre este comportamento:

https://docs.python.org/3/tutorial/floatingpoint.html

Neste caso, a sugestão é arredondar o número.

Espero ter ajudado! ;)

solução!

Oi, Lucas! Tudo bem por aí?

Esse problema é bastante comum no universo da computação. Por baixo dos panos, os computadores trabalham apenas com o formato binário (de 0 e 1) — o qual pode não se dar tão bem com números de ponto flutuante, como os que você utilizou no seu programa.

O Python, por exemplo, usa uma representação binária para os números de ponto flutuante, o que pode gerar imprecisões em algumas operações.

Uma forma de contornar essa situação é utilizar a função round() para arredondar o resultado para o número de casas decimais desejado:

resultado = (0.9/1) - 1
resultado_arredondado = round(resultado, 1)

Se tiver interesse em saber um pouquinho mais sobre esse assunto, recomendo a leitura do nosso artigo:

Lucas, espero ter ajudado! Se surgirem novas dúvidas, fico à disposição.

Um abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!