Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TypeError:需要浮点值-Python_Python_Floating Point_Typeerror_Required - Fatal编程技术网

TypeError:需要浮点值-Python

TypeError:需要浮点值-Python,python,floating-point,typeerror,required,Python,Floating Point,Typeerror,Required,我目前正在通过Python3.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') g

我目前正在通过Python3.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中运行它时,需要一个浮点。

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

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

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

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

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

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

我没有看到
angle\u b()
中声明的变量
side\u b
angle\u a
side\u a
。。即使是
global
?在
create()
函数中,
side\u a
side\u b
angle\u a
angle\u b
都声明为全局并定义。只有
angle\u b
变量由
angle\u b()
函数定义,因此在这种情况下,您的愿景非常值得怀疑。我的想法很糟糕……是的……我的愿景值得怀疑……:我想知道为什么您要将变量创建为字符串,而不是将它们创建为浮点数,然后只在需要输出时转换为字符串。这是个好问题。我之所以向下转换,是因为我希望变量的值是一个四舍五入到千分之一的常数。输出不是我想要的,而是实际变量像存储的soI一样。我看不到
angle\u b()
中声明的变量
side\u b
angle\u a
side\u a
。。即使是
global
?在
create()
函数中,
side\u a
side\u b
angle\u a
angle\u b
都声明为全局并定义。只有
angle\u b
变量由
angle\u b()
函数定义,因此在这种情况下,您的愿景非常值得怀疑。我的想法很糟糕……是的……我的愿景值得怀疑……:我想知道为什么您要将变量创建为字符串,而不是将它们创建为浮点数,然后只在需要输出时转换为字符串。这是个好问题。我之所以向下转换,是因为我希望变量的值是一个四舍五入到千分之一的常数。输出不是我想要的,而是像存储的soHi@samgak一样的实际变量,我也尝试了这个,因为我需要使用ctypes,我有相同的错误,我的代码:
x=0
x=float(x)
fp=c\u float(x)
fp=c\u float(fp)
谢谢你的帮助@AlexanderDeLeonVI问题是最后一条语句
fp=c_float(fp)
。您需要向c_float()传递一个float,但是fp已经是c_float,因为
fp=c_float(x)
。只需删除最后一条语句,这是不必要的。嗨@samgak,我也尝试了这个,因为我需要使用ctypes,我有相同的错误,我的代码:
x=0
x=float(x)
fp=c\u float(x)
fp=c\u float(fp)
谢谢你的帮助@AlexanderDeLeonVI问题是最后一条语句
fp=c_float(fp)
。您需要向c_float()传递一个float,但是fp已经是c_float,因为
fp=c_float(x)
。只需删除最后一句话,这是不必要的。