Exercício 30

Home Fóruns Python Exercício 30

Visualizando 2 respostas da discussão
  • Autor
    Posts
    • #102335
      Ermesson Rodrigues
      Participante

      Olá, estou com duvida sobre o exercicio
      fiz ele utilizando float, e porem da erro no codigo abaixo:

      numero = float(input(‘Digite um numero: ‘))
      if numero % 2.0 == 0:
      print(f'{numero} é Par’)
      else:
      print(f'{numero} é impar’)
      print(‘= = = = FIM DO PROGRAMA = = = =’)

      O erro ocorre quando tento verificar um numero como por exemplo 12.2, 14.6 etc… o programa me retorna que o numero é impar, quando na verdade ele é par
      deu um print no resto da divisão no qual matematicamente falando era para ser “0”, pore o resultado é: 0.5999999999999996 realmente eu não entendo o porque disso.

    • #102404
      Tutora Jessica
      Moderador

      Ola Ermesson,
      Quando utilizamos o float e atribuimos a ele o valor 12.2, conforme o seu exemplo, ao calcularmos a divisão por dois e verificarmos o resto teremos o seguinte resultado:

      12.2 % 2 = 0.1999999999999993

      O que é diferente de 0 e conforme a sua condição if só será par quando igual a 0.
      Para utilização de float teríamos de fazer outras validações do que um simples if == 0.

      • #102445
        Ermesson Rodrigues
        Participante

        mas porque o python entende dessa forma? o resto de 12.2 por 2 é 0, mateaticamente não faz sentido.

    • #102471
      Tutora Jessica
      Moderador

      Ola Ermesson,
      Na documentação do Phyton, no link que vou disponibilizar aqui pra você, ele tem uma melhor explicação sobre esse “problema matemático”.

      https://docs.python.org/pt-br/3/tutorial/floatingpoint.html

Visualizando 2 respostas da discussão
  • Você deve fazer login para responder a este tópico.