TypeError: a float is required - Python

TypeError: a float is required - Python

我目前正在通过 Python 3.x 创建一个三角函数计算器。在我的一个函数中,我为直角三角形的未知角度创建了一个值 'angle_b' 我通过为它分配函数 'ANGLE_B' 来定义它。这是代码树供参考:

def create():
    global side_a
    side_a = format(random.uniform(1,100),'.0f')
    global side_b
    side_b = format(random.uniform(1,100),'.0f')
    global angle_a
    angle_a = format(random.uniform(1,180),',.3f')
    global angle_b
    angle_b = ANGLE_B()

def ANGLE_B():
    ang = format(math.asin(side_b*(math.sin(angle_a)/side_a)),'.3f')
    return ang

我尝试了多种组合,将 ANGLE_B() 块中的 ang 转换为浮点数,例如 ang = float(ang),但我没有成功。谁能帮忙?当我在 CMD 中 运行 时,我一直得到 TypeError: a float is required

您将字符串变量传递给 math.sin 和 math.asin,这导致了类型错误。您可以通过转换为 float 来修复:

ang = format(math.asin(float(side_b)* (math.sin(float(angle_a))/float(side_a))),'.3f')

您也可以将所有这些变量存储为浮点数。