I'm using the math module in python, and I came up with a problem, when using math.sqrt for the root of 75, it returns me 7.5, even using float (), the root being something around 8.66 How can I fix this problem? (the values posted by the user 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)