error in Math.sqrt

Asked

Viewed 424 times

0

I’m using the module Math in python, and I came up with a problem, when using Math.sqrt for the 75 root, it returns me 7.5, even using float(), and the root is around 8.66 How can I fix this problem ? (user values are 5.5.5)

#Definimos a função que calcula o Delta
def deltaFn(a,b,c):
    d = float(math.pow(b,2)+((-4) * a * c))
    return d
#Função de cálculo da fórmula de Bhaskara para retornar os valores x1 e x2
def bhaskaraFn(a,b,c):
    #A unidade imaginária é False até o momento de sabermos o valor de delta, podendo variar para True
    i = False
    #Executa a função deltaFn para poder tirar a sua raíz
    delta = deltaFn(a,b,c)
    #Verificação de caso de raiz negativa
    if delta < 0:
        #Definir a unidade imaginária como True
        i = True
        #Tornamos o valor positivo para posteriormente indicarmos como unidade imaginária
        delta *= (-1)
        raizDelta = float(math.sqrt(delta)) ### <----------
        #A conta deve ser efetuada separadamente, para não haver risco de somar o valor Imaginário com o valor Real
        # - B / 2 * a
        termoB = (b * (-1)) / (2 * a)
        #Número imaginário (delta dividido por 2 * a e concatenado com 'i')
        imaginario = (delta / (2 * a))
        imaginario = str(imaginario) + 'i'
        #Valores de x1 e x2
        x1 = '%d + '%(termoB) + imaginario
        print('x1 = ',x1)
        x2 = '%d - '%(termoB) + imaginario
        print('x2 = ',x2)
        return (i,x1,x2)
    else:
        raizDelta = math.sqrt(delta)
        x1 = ((b * (-1)) + delta) / (2 * a)
        x2 = ((b * (-1)) - delta) / (2 * a)
        return (i,x1,x2)

1 answer

2


You are confusing your variables. First do

delta *= (-1)
raizDelta = float(math.sqrt(delta))

And then use delta, when you calculated the root and put it into the variable raizDelta:

imaginario = (delta / (2 * a))

What you want to do is use the variable raizDelta:

imaginario = (raizDelta / (2 * a))
  • 1

    Truth bro, thank you so much <3

Browser other questions tagged

You are not signed in. Login or sign up in order to post.