首页 > 解决方案 > 二次公式:python 将浮点数视为字符串

问题描述

我正在制作一个程序,要求用户输入 a、b 和 c 的值,然后使用二次公式计算根。我遇到的唯一问题是 python 将 a 和平方根项视为两个字符串,实际上并没有添加它们。它们之间的 + 被打印出来。

这是我的代码:

import cmath

def cubic_formula(a, b, c):
    print("x1: " + str((-b-cmath.sqrt(b**2-4*a*c))/(2*a)))
    print("x2: " + str((-b+cmath.sqrt(b ** 2 - 4 * a * c)) / (2 * a)))

a = float(input("a: ")) b = float(input("b: ")) c = float(input("c: "))

cubic_formula(a, b, c)

这是输出,说明了我刚刚描述的问题:

pycharm 上输出的屏幕截图

我不知道如何使加号导致两个数字的实际相加。删除 str() 并且在 print() 中没有字符串并没有改变任何东西。

标签: pythonfunctionconcatenationquadraticpython-cmath

解决方案


你看到的是复数,而不是字符串。当判别式b*b-4*a*c为负时,解决方案没有实值。虚数单位在 Python 中表示,复数j在 Python 中打印(a+bj)。您可能想在计算之前检查判别式是否为正,并使用math.sqrt返回浮点数的cmath.sqrt函数,而不是返回复数的函数。

另请注意,您调用了该函数cubic_formula,但正在计算quadratic_formula


推荐阅读