TypeError:需要一个float - Python

时间:2015-06-28 02:50:57

标签: python floating-point typeerror required

我目前正在通过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

我尝试了将ang块中的ANGLE_B()转换为浮点数的多种组合,例如ang = float(ang)但我没有运气。有人可以帮忙吗?当我在CMD中运行时,我不断获得TypeError: a float is required

1 个答案:

答案 0 :(得分:4)

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

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

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