Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida - Comando While


ilovecer

Pergunta

Olá!

Estou com uma imensa dúvida...

O seguinte exercicio foi proposto:

Reescreva o programa acima, agora exibindo as raízes quadradas de 2, com intervalos de 0,2, até que a

raiz seja maior que 2.

Eu pensei , tranquilo.Escrevi:


import math
import locale

print 'Número', ' Raiz quadrada'
i=2.0
while math.sqrt(i) <= 2:
print locale.format('%4.1f',i), \
locale.format('%14.8f',math.sqrt(i))
i = i + 0.2
[/codebox]

Mas na hora de executar o programa obtenho

[codebox]Número Raiz quadrada
2.0 1.41421356
2.2 1.48323970
2.4 1.54919334
2.6 1.61245155
2.8 1.67332005
3.0 1.73205081
3.2 1.78885438
3.4 1.84390889
3.6 1.89736660
3.8 1.94935887

Por que não houve o print do número 4 e sua raíz?

Agradeço desde já!

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

O problema é que o float 4.0 não é exatamente 4.0. Para você ver o valor que está sendo usado no float rode assim:

from math import sqrt
from locale import format

i = 2.0
while sqrt(i) <= 2:
    print format('%4.1f',i), format('%14.8f',sqrt(i))
    i = i + 0.2
    print 'i = %s, sqrt(i) = %s' % (repr(i), repr(sqrt(i)))
Veja que o valor de i na última execução é 4.0000000000000018. Para ter valores exatos use o tipo Decimal:
from decimal import Decimal
from math import sqrt
from locale import format

print 'Número', ' Raiz quadrada'
i = Decimal(2)
j = Decimal('0.2')
while sqrt(i) <= 2:
    print format('%4.1f',i), format('%14.8f',sqrt(i))
    i = i + j

Editado por Kakao
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...