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

round e arredondamento


Nerun

Pergunta

Olá pessoal,

Este é meu primeiro tópico no fórum.

Eu uso o Python 2.6.2 e Windows. Eu preciso de um número float com um dígito após a vírgula, arredondando para cima. Mas me deparei com algumas estranhezas:

49 / 5 = 9.8 (façam na mão ou na claculadora)

289/5 = 57.8 (exatamente...)

No Python:

> x = 49/5.0
9.8000000000000007
> y = 289/5.0
57.799999999999997
Até aí tudo bem, eu tento arredondar para 9.8 e 57.8:
> round(x,1)
9.8000000000000007
> round(y,1)
57.799999999999997

Alguém me explica o absurdo da divisão de 49 por 5? E 289 por 5?

Alguém me explica como arredondar direito?

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

1 resposta a esta questão

Posts Recomendados

  • 0

Tudo bem pessoal, já entendi porque a divisão é absurda. Achei na documentação do Python. É sempre assim mesmo.

Pra arredondar é útil utilizar o str():

> x = 49/5.0
9.8000000000000007
> y = 289/5.0
57.799999999999997
> str(x)
'9.8'
> str(y)
'57.8'

str() converte o número, float ou int, em string. Para exibição isto é ótimo. Isto é, se a idéia é mostrar a alguém que solicita ver aquele valor o número correto, arredondado, então é útil usar str(). E pra trabalhar "por trás" é útil manter em float.

Editado por Nerun
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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...