engwsp Postado Setembro 13, 2016 Denunciar Share Postado Setembro 13, 2016 Fiz um algoritmo para verificar se a raiz é exata ou não RaizInt = int(math.sqrt(qd)) RaizFloat =float(math.sqrt(qd)) if (RaizInt == RaizFloat): Entretanto meu algoritmo está com erro. O pc, está considerando 491917881,999999988 = =491917882.000000 √241983202631365912 = 491917881,999999988 Como eu faço para aumentar a quantidade de casas decimais? Desde já agradeço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ArteEN Postado Setembro 13, 2016 Denunciar Share Postado Setembro 13, 2016 (editado) Experimente o modulo decimal from decimal import Decimal n = Decimal(241983202631365912) print(n.sqrt()) #'.sqrt' é um metodo do objeto Decimal, não precisa 'import math' 491917881.9999999878028422638 n.sqrt() == Decimal('491917882') False n.sqrt() == Decimal('491917881.9999999878028422638') #Detalhe na conversão direta de float para Decimal, deve usar string True Editado Setembro 13, 2016 por ArteEN Complementar resposta Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
engwsp
Fiz um algoritmo para verificar se a raiz é exata ou não
RaizInt = int(math.sqrt(qd))
RaizFloat =float(math.sqrt(qd))
if (RaizInt == RaizFloat):
Entretanto meu algoritmo está com erro.
O pc, está considerando 491917881,999999988 = =491917882.000000
√241983202631365912 = 491917881,999999988
Como eu faço para aumentar a quantidade de casas decimais?
Desde já agradeço
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
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.